116 lines
3.2 KiB
Bash
Executable file
116 lines
3.2 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Universal updater by Andrew Schott andrew@schotty.com
|
|
# Will detect and update via various packaging formats for distros I currently use.
|
|
|
|
# Globals
|
|
# edit as needed to set colors and soforth
|
|
# presuming echo thus tput is chosen here as default\
|
|
|
|
# tput text formatting
|
|
# bold=bold dim=dimmed
|
|
# rev=reverse bel=bell sound
|
|
# smul=underline on rmul=underline off
|
|
# setaf=foreground setab=background
|
|
# sgr0=clear
|
|
#
|
|
# Colors
|
|
# 0 Black 1 Red 2 Green 3 Yellow
|
|
# 4 Blue 5 Magenta 6 Cyan 7 White
|
|
#
|
|
# Default is
|
|
# * green for a true finding
|
|
# * yellow for a false finding
|
|
# * clear at the end to resume normal output for said command's output
|
|
|
|
CMD_NOTIFY="tput rev bold setaf 7 setab 0"
|
|
CMD_TRUE="tput rev bold setaf 2 setab 0"
|
|
CMD_FALSE="tput rev bold setaf 1 setab 7"
|
|
CMD_CLEAR="tput sgr0"
|
|
|
|
echo $($CMD_NOTIFY)"Looking for native package managers"$($CMD_CLEAR)
|
|
|
|
# apt -- Debian and derivatives
|
|
if `which apt &> /dev/null 2>&1`
|
|
then
|
|
echo $($CMD_TRUE)"Found apt. Updating: ($(which apt))"$($CMD_CLEAR)
|
|
sudo apt udate -y
|
|
sudo apt upgrade -y
|
|
else
|
|
echo $($CMD_FALSE)"apt not found/needed"$($CMD_CLEAR)
|
|
fi
|
|
|
|
# dnf -- RHEL 8+, Fedora, Openmandriva, and derivatives
|
|
if `which dnf &> /dev/null 2>&1`
|
|
then
|
|
echo $($CMD_TRUE)"Found dnf. Updating: ($(which dnf))"$($CMD_CLEAR)
|
|
sudo dnf --refresh --skip-broken --nobest -y update
|
|
else
|
|
echo $($CMD_FALSE)"dnf not found/needed"$($CMD_CLEAR)
|
|
fi
|
|
|
|
# pacman -- arch & arch derivatives
|
|
if `which pacman &> /dev/null 2>&1`
|
|
then
|
|
echo $($CMD_TRUE)"Found pacman. Updating: ($(which pacman))"$($CMD_CLEAR)
|
|
sudo pacman -Syu
|
|
else
|
|
echo $($CMD_FALSE)"pacman not found/needed"$($CMD_CLEAR)
|
|
fi
|
|
|
|
# yum -- RHEL 7 > (Ignored if dnf is present)
|
|
if `which yum &> /dev/null 2>&1` && ! `which dnf &> /dev/null 2>&1`
|
|
then
|
|
echo $($CMD_TRUE)"Found yum. Updating: ($(which yum))"$($CMD_CLEAR)
|
|
sudo yum --refresh --skip-broken --nobest -y update
|
|
else
|
|
echo $($CMD_FALSE)"yum not found/needed"$($CMD_CLEAR)
|
|
fi
|
|
|
|
# urpmi -- Mageia
|
|
if `which urpmi &> /dev/null 2>&1` && ! `which dnf &> /dev/null 2>&1`
|
|
then
|
|
echo $($CMD_TRUE)"Found urpmi. Updating: ($(which urpmi))"$($CMD_CLEAR)
|
|
sudo urpmi --auto-update -y
|
|
else
|
|
echo $($CMD_FALSE)"urpmi not found/needed"$($CMD_CLEAR)
|
|
fi
|
|
|
|
# zypper -- SuSE products
|
|
if `which zypper &> /dev/null 2>&1`
|
|
then
|
|
echo $($CMD_TRUE)"Found zypper. Updating: ($(which zypper))"$($CMD_CLEAR)
|
|
sudo zypper in -y
|
|
else
|
|
echo $($CMD_FALSE)"zypper not found/needed"$($CMD_CLEAR)
|
|
fi
|
|
|
|
echo $($CMD_NOTIFY)"Looking for sandboxed package managers"$($CMD_CLEAR)
|
|
|
|
# flatpak
|
|
if `which flatpak &> /dev/null 2>&1`
|
|
then
|
|
echo $($CMD_TRUE)"Found flatpak. Updating: ($(which flatpak))"$($CMD_CLEAR)
|
|
flatpak update --user -y
|
|
sudo flatpak update -y
|
|
else
|
|
echo $($CMD_FALSE)"flatpak not found/needed"$($CMD_CLEAR)
|
|
fi
|
|
|
|
# snap
|
|
if `which snap &> /dev/null 2>&1`
|
|
then
|
|
echo $($CMD_TRUE)"Found snap. Updating: ($(which snap))"$($CMD_CLEAR)
|
|
sudo snap refresh -y
|
|
else
|
|
echo $($CMD_FALSE)"snap not found/needed"$($CMD_CLEAR)
|
|
fi
|
|
|
|
# pip
|
|
if `which pip-review &> /dev/null 2>&1`
|
|
then
|
|
echo $($CMD_TRUE)"Found pip-review. Updating: ($(pip-review))"$($CMD_CLEAR)
|
|
pip-review --auto --local --user
|
|
else
|
|
echo $($CMD_FALSE)"pip-review not found/needed"$($CMD_CLEAR)
|
|
fi
|