#!/bin/sh # sc.requires: logger 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 echo dnf elif command -v yum > /dev/null; then echo yum elif command -v zypper > /dev/null; then echo zypper elif command -v brew > /dev/null; then echo brew elif command -v apk > /dev/null; then echo apk elif command -v nix-env > /dev/null; then echo nix else fatal_log "no supported package manager found" exit 1 fi } SC_PACKAGE_MANAGER="${SC_PACKAGE_MANAGER:-$(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 ;; esac } install_package() { [ $# -lt 1 ] && fatal_log "usage: install_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 ;; esac }