feat: a3 and other things
This commit is contained in:
parent
dd7516e6d7
commit
4be03b9764
7 changed files with 180 additions and 82 deletions
153
lib/pm
153
lib/pm
|
@ -2,22 +2,22 @@
|
|||
|
||||
# sc.requires: logger
|
||||
|
||||
detect_package_manager() {
|
||||
if command -v apt > /dev/null; then
|
||||
pm_detect_package_manager() {
|
||||
if command -v apt >/dev/null; then
|
||||
echo apt
|
||||
elif command -v pacman > /dev/null; then
|
||||
echo arch
|
||||
elif command -v dnf > /dev/null; then
|
||||
elif command -v pacman >/dev/null; then
|
||||
echo pacman
|
||||
elif command -v dnf >/dev/null; then
|
||||
echo dnf
|
||||
elif command -v yum > /dev/null; then
|
||||
elif command -v yum >/dev/null; then
|
||||
echo yum
|
||||
elif command -v zypper > /dev/null; then
|
||||
elif command -v zypper >/dev/null; then
|
||||
echo zypper
|
||||
elif command -v brew > /dev/null; then
|
||||
elif command -v brew >/dev/null; then
|
||||
echo brew
|
||||
elif command -v apk > /dev/null; then
|
||||
elif command -v apk >/dev/null; then
|
||||
echo apk
|
||||
elif command -v nix-env > /dev/null; then
|
||||
elif command -v nix-env >/dev/null; then
|
||||
echo nix
|
||||
else
|
||||
fatal_log "no supported package manager found"
|
||||
|
@ -25,40 +25,111 @@ detect_package_manager() {
|
|||
fi
|
||||
}
|
||||
|
||||
SC_PACKAGE_MANAGER="${SC_PACKAGE_MANAGER:-$(detect_package_manager)}"
|
||||
SC_PACKAGE_MANAGER="${SC_PACKAGE_MANAGER:-$(pm_detect_package_manager)}"
|
||||
|
||||
upgrade_packages() {
|
||||
case $SC_PACKAGE_MANAGER in
|
||||
apt) apt update && apt upgrade -y ;;
|
||||
arch) pacman -Syyu --noconfirm ;;
|
||||
dnf) dnf upgrade -y ;;
|
||||
yum) yum update -y ;;
|
||||
zypper) zypper refresh && zypper update -y ;;
|
||||
brew) brew update && brew upgrade ;;
|
||||
apk) apk update && apk upgrade ;;
|
||||
nix) nix-channel --update && nix-env -u ;;
|
||||
*)
|
||||
fatal_log "unsupported package manager: $SC_PACKAGE_MANAGER"
|
||||
exit 1
|
||||
;;
|
||||
pm_upgrade_packages() {
|
||||
LOGI "Upgrading packages using ${SC_PACKAGE_MANAGER}..."
|
||||
|
||||
case "$SC_PACKAGE_MANAGER" in
|
||||
apt)
|
||||
sudo apt update && sudo apt upgrade -y
|
||||
;;
|
||||
pacman)
|
||||
sudo pacman -Syu
|
||||
;;
|
||||
dnf)
|
||||
sudo dnf upgrade --refresh -y
|
||||
;;
|
||||
yum)
|
||||
sudo yum update -y
|
||||
;;
|
||||
zypper)
|
||||
sudo zypper refresh && sudo zypper update -y
|
||||
;;
|
||||
brew)
|
||||
brew update && brew upgrade
|
||||
;;
|
||||
apk)
|
||||
sudo apk update && sudo apk upgrade
|
||||
;;
|
||||
nix)
|
||||
nix-env --upgrade
|
||||
;;
|
||||
*)
|
||||
fatal_log "Unsupported package manager: ${SC_PACKAGE_MANAGER}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
install_package() {
|
||||
[ $# -lt 1 ] && fatal_log "usage: install_package <package>" && exit 1
|
||||
package=$1
|
||||
case $SC_PACKAGE_MANAGER in
|
||||
apt) apt install -y "$package" ;;
|
||||
arch) pacman -S --noconfirm "$package" ;;
|
||||
dnf) dnf install -y "$package" ;;
|
||||
yum) yum install -y "$package" ;;
|
||||
zypper) zypper install -y "$package" ;;
|
||||
brew) brew install "$package" ;;
|
||||
apk) apk add "$package" ;;
|
||||
nix) nix-env -iA nixpkgs."$package" ;;
|
||||
*)
|
||||
fatal_log "unsupported package manager: $SC_PACKAGE_MANAGER"
|
||||
exit 1
|
||||
;;
|
||||
pm_install_packages() {
|
||||
LOGI "Installing packages using ${SC_PACKAGE_MANAGER}..."
|
||||
packages="$@"
|
||||
|
||||
case "$SC_PACKAGE_MANAGER" in
|
||||
apt)
|
||||
sudo apt install -y $packages
|
||||
;;
|
||||
pacman)
|
||||
sudo pacman -S --noconfirm $packages
|
||||
;;
|
||||
dnf)
|
||||
sudo dnf install -y $packages
|
||||
;;
|
||||
yum)
|
||||
sudo yum install -y $packages
|
||||
;;
|
||||
zypper)
|
||||
sudo zypper install -y $packages
|
||||
;;
|
||||
brew)
|
||||
brew install $packages
|
||||
;;
|
||||
apk)
|
||||
sudo apk add $packages
|
||||
;;
|
||||
nix)
|
||||
nix-env -i $packages
|
||||
;;
|
||||
*)
|
||||
fatal_log "Unsupported package manager: ${SC_PACKAGE_MANAGER}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
pm_remove_packages() {
|
||||
LOGI "Removing packages using ${SC_PACKAGE_MANAGER}..."
|
||||
packages="$@"
|
||||
|
||||
case "$SC_PACKAGE_MANAGER" in
|
||||
apt)
|
||||
sudo apt remove -y $packages
|
||||
;;
|
||||
pacman)
|
||||
sudo pacman -Rns --noconfirm $packages
|
||||
;;
|
||||
dnf)
|
||||
sudo dnf remove -y $packages
|
||||
;;
|
||||
yum)
|
||||
sudo yum remove -y $packages
|
||||
;;
|
||||
zypper)
|
||||
sudo zypper remove -y $packages
|
||||
;;
|
||||
brew)
|
||||
brew uninstall $packages
|
||||
;;
|
||||
apk)
|
||||
sudo apk del $packages
|
||||
;;
|
||||
nix)
|
||||
nix-env -e $packages
|
||||
;;
|
||||
*)
|
||||
fatal_log "Unsupported package manager: ${SC_PACKAGE_MANAGER}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue