From 642017d72bcc28909144db8e620693be8a84c94a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ensar=20Saraj=C4=8Di=C4=87?= Date: Tue, 12 Jul 2022 09:53:37 +0200 Subject: [PATCH] Add ability to skip updates in update-all-packages --- symlinks/bin/update-all-packages | 66 +++++++++++++++++++++++++++----- 1 file changed, 56 insertions(+), 10 deletions(-) diff --git a/symlinks/bin/update-all-packages b/symlinks/bin/update-all-packages index fad9480..2d696da 100755 --- a/symlinks/bin/update-all-packages +++ b/symlinks/bin/update-all-packages @@ -3,8 +3,55 @@ set -e UNAME=$(sh -c 'uname 2>/dev/null || echo Unknown') +declare -A SKIP=() +POSITIONAL=() -if type pacman > /dev/null 2>&1 +while [[ $# -gt 0 ]]; do + key="$1" + + case $key in + -s|--skip) + shift # past argument + SKIP["$1"]=1 + shift # past value + ;; + *) # unknown option + POSITIONAL+=("$1") # save it in an array for later + shift # past argument + ;; + esac +done + +declare -A RUN=() + +for command in "pacman" "apt" "flatpak" "gem" "nvim" "asdf" "brew" "pacman"; +do + echo $command + if type $command > /dev/null 2>&1 + then + if [ "${SKIP[$command]}" = "1" ]; then + RUN[$command]=0 + else + RUN[$command]=1 + fi + else + RUN[$command]=0 + fi +done + +# Special case for vim +if type -f vim > /dev/null 2>&1 +then + if [ "${SKIP[vim]}" = "1" ]; then + RUN[vim]=0 + else + RUN[vim]=1 + fi +else + RUN[vim]=0 +fi + +if [ "${RUN[pacman]}" = "1" ] then # Clear out orphans sudo pacman -Rns $(pacman -Qtdq) @@ -16,7 +63,7 @@ then aurfetch update-all -q fi -if type apt > /dev/null 2>&1 +if [ "${RUN[apt]}" = "1" ] then # Clear out orphans sudo apt autoremove @@ -29,7 +76,7 @@ then sudo apt autoremove fi -if type flatpak > /dev/null 2>&1 +if [ "${RUN[flatpak]}" = "1" ] then # Clear out unused flatpak apps flatpak uninstall --unused @@ -41,24 +88,23 @@ then flatpak uninstall --unused fi -# Update rubygems -if type gem > /dev/null 2>&1 +if [ "${RUN[gem]}" = "1" ] then gem update --system gem update fi -if type nvim > /dev/null 2>&1 +if [ "${RUN[nvim]}" = "1" ] then nvim --headless -c 'autocmd User PackerComplete quitall' -c 'PackerSync' fi -if type -f vim > /dev/null 2>&1 +if [ "${RUN[vim]}" = "1" ] then command vim +PlugUpdate +qall fi -if type asdf > /dev/null 2>&1 +if [ "${RUN[asdf]}" = "1" ] then asdf update asdf plugin-update --all @@ -77,7 +123,7 @@ then echo "========== ASDF UPDATES ==========" fi -if type brew > /dev/null 2>&1 +if [ "${RUN[brew]}" = "1" ] then brew update brew upgrade @@ -89,7 +135,7 @@ then fi fi -if type pacman > /dev/null 2>&1 +if [ "${RUN[pacman]}" = "1" ] then # Clear out orphans once again sudo pacman -Rns $(pacman -Qtdq)