57 lines
1.6 KiB
Bash
Executable file
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
|