dotfiles/symlinks/bin/update-all-packages

110 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
set -e
UNAME=$(sh -c 'uname 2>/dev/null || echo Unknown')
. ~/.local/opt/script_utils/parse-package-managers-params.bash
if [ "${RUN[pacman]}" = "1" ]
then
# Clear out orphans
sudo pacman -Rns $(pacman -Qtdq)
# Update arch packages
sudo pacman -Syu
# Update AUR packages
aurfetch update-all -q
fi
if [ "${RUN[apt]}" = "1" ]
then
# Clear out orphans
sudo apt autoremove
# Update apt packages
sudo apt update
sudo apt full-upgrade
# Clear out orphans
sudo apt autoremove
fi
if [ "${RUN[dnf]}" = "1" ]
then
# Clear out orphans
sudo dnf autoremove
# Update dnf packages
sudo dnf update
# Clear out orphans
sudo dnf autoremove
fi
if [ "${RUN[flatpak]}" = "1" ]
then
# Clear out unused flatpak apps
flatpak uninstall --unused
# Update flatpak packages
flatpak update
# Clear out unused flatpak apps once again
flatpak uninstall --unused
fi
if [ "${RUN[gem]}" = "1" ]
then
gem update --system
gem update
fi
if [ "${RUN[nvim]}" = "1" ]
then
nvim --headless -c 'Lazy! sync' -c 'quitall'
fi
if [ "${RUN[vim]}" = "1" ]
then
command vim +PlugUpdate +qall
fi
if [ "${RUN[asdf]}" = "1" ]
then
asdf update
asdf plugin-update --all
echo "========== ASDF UPDATES =========="
echo "Available updates: "
while IFS= read -r PKG; do
if [ $(echo "$PKG" | cut -f3) = "missing" ]; then
PKG_NAME=$(echo $PKG | cut -f1 -d " ")
if [ "$PKG_NAME" != "java" -a "$PKG_NAME" != "ruby" ]; then
PKG_VER=$(echo $PKG | cut -f2 -d " ")
echo " $PKG_NAME - $PKG_VER (install with 'asdf install $PKG_NAME $PKG_VER' and set as global default with 'asdf global $PKG_NAME $PKG_VER')"
fi
fi
done <<< "$(asdf latest --all)"
echo "========== ASDF UPDATES =========="
fi
if [ "${RUN[brew]}" = "1" ]
then
brew update
brew upgrade
if [ "$UNAME" = "Darwin" ]; then
brew upgrade --cask
fi
if [ $? -eq 0 ]; then
echo $( date +%s ) > $MY_CONFIG_CACHE_DIR/brew-upgrade-date
fi
fi
if [ "${RUN[pacman]}" = "1" ]
then
# Clear out orphans once again
sudo pacman -Rns $(pacman -Qtdq)
fi