Skip to content

Instantly share code, notes, and snippets.

@manix84
Last active February 26, 2025 16:21
Show Gist options
  • Select an option

  • Save manix84/f18051c1af3730661c53c1e901d05479 to your computer and use it in GitHub Desktop.

Select an option

Save manix84/f18051c1af3730661c53c1e901d05479 to your computer and use it in GitHub Desktop.
package_installer() {
local package_manager=""
if command -v apt >/dev/null 2>&1; then
package_manager="apt"
elif command -v yum >/dev/null 2>&1; then
package_manager="yum"
elif command -v dnf >/dev/null 2>&1; then
package_manager="dnf"
elif command -v zypper >/dev/null 2>&1; then
package_manager="zypper"
elif command -v pacman >/dev/null 2>&1; then
package_manager="pacman"
elif command -v brew >/dev/null 2>&1; then
package_manager="brew"
elif command -v apk >/dev/null 2>&1; then
package_manager="apk"
else
echo "Error: No supported package manager found!" >&2
return 1
fi
echo "Using $package_manager to install: $@"
case "$package_manager" in
apt)
sudo apt update && sudo apt install -y "$@"
;;
yum)
sudo yum install -y "$@"
;;
dnf)
sudo dnf install -y "$@"
;;
zypper)
sudo zypper install -y "$@"
;;
pacman)
sudo pacman -Sy --noconfirm "$@"
;;
brew)
brew install "$@"
;;
apk)
sudo apk add "$@"
;;
*)
echo "Error: Unsupported package manager: $package_manager" >&2
return 1
;;
esac
}
usage_example() {
### Single package
package_installer zsh
### Multiple packages
package_installer zsh git unqip fastfetch
}
usage_example
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment