Sapphic-Package-Manager/usr/bin/spm_upgrade
2024-03-01 22:50:13 -07:00

57 lines
1.6 KiB
Bash
Executable file

#!/bin/bash
isroot=false
issudo=false
if [ "$EUID" -eq 0 ];then isroot=true;fi
if [ -n "$SUDO_USER" ]; then issudo=true;fi
usage(){
echo -n "spm "
cat ./usr/share/doc/spm/spm_upgrade
}
yn=""
while getopts 'hYyNnafp' flag; do
case "${flag}" in
[YyNnafp] ) yn="${yn}${flag}" ;;
h|* ) usage
exit 1 ;;
esac
done
if $isroot; then
echo -e "\033[1mUpdating apt sources...\033[0m"
apt -qqq update
echo -e "\033[1mapt upgrade summary:\033[0m"
apt -qq upgrade --dry-run
fi
echo -e "\033[1mWill check and install updates for the following pipx packages:\033[0m"
if $issudo;then
sudo -u $SUDO_USER pipx list --short
else
pipx list --short
fi
echo -e "\033[1mFlatpak update summary:\033[0m"
if $issudo;then
sudo -u $SUDO_USER flatpak remote-ls --updates
else
flatpak remote-ls --updates
fi
while true; do
if [ -z "$yn" ];then
echo "Yy: Update All"
echo "Nn: Update nothing"
if $isroot; then echo "a: Upgrade apt packages";fi
echo "f: Update flatpak packages"
echo "p: Update pipx packages"
read -p "Install updates? " yn
fi
case $yn in
*[Nn]* ) exit;;
*[Yya]* ) if $isroot; then echo -e "\033[1mUpgrading apt packages...\033[0m";apt -y upgrade;fi;;&
*[Yyf]* ) if $issudo; then echo -e "\033[1mUpdating flatpak packages...\033[0m";sudo -u $SUDO_USER flatpak update -y;else flatpak update -y;fi;;&
*[Yyp]* ) if $issudo; then echo -e "\033[1mUpgrading pipx packages...\033[0m";sudo -u $SUDO_USER pipx upgrade-all;else pipx upgrade-all;fi;;&
*[Yyafp]* ) break;;
* ) yn=""; echo "Please select a valid option.";;
esac
done