Files

99 lines
1.9 KiB
Bash
Executable File

#!/usr/bin/env bash
set -e
# List of apps to install
APPS=(
git
curl
vim
htop
)
# Detect package manager
detect_package_manager() {
if command -v apt >/dev/null 2>&1; then
PKG_MANAGER="apt"
elif command -v dnf >/dev/null 2>&1; then
PKG_MANAGER="dnf"
elif command -v yum >/dev/null 2>&1; then
PKG_MANAGER="yum"
elif command -v pacman >/dev/null 2>&1; then
PKG_MANAGER="pacman"
elif command -v zypper >/dev/null 2>&1; then
PKG_MANAGER="zypper"
elif command -v apk >/dev/null 2>&1; then
PKG_MANAGER="apk"
else
echo "Unsupported package manager."
exit 1
fi
}
# Check if package is installed
is_installed() {
local pkg="$1"
case "$PKG_MANAGER" in
apt)
dpkg -s "$pkg" >/dev/null 2>&1
;;
dnf|yum)
rpm -q "$pkg" >/dev/null 2>&1
;;
pacman)
pacman -Qi "$pkg" >/dev/null 2>&1
;;
zypper)
rpm -q "$pkg" >/dev/null 2>&1
;;
apk)
apk info -e "$pkg" >/dev/null 2>&1
;;
esac
}
# Install package
install_package() {
local pkg="$1"
case "$PKG_MANAGER" in
apt)
sudo apt update
sudo apt install -y "$pkg"
;;
dnf)
sudo dnf install -y "$pkg"
;;
yum)
sudo yum install -y "$pkg"
;;
pacman)
sudo pacman -Sy --noconfirm "$pkg"
;;
zypper)
sudo zypper install -y "$pkg"
;;
apk)
sudo apk add "$pkg"
;;
esac
}
detect_package_manager
echo "Detected package manager: $PKG_MANAGER"
echo
for app in "${APPS[@]}"; do
if is_installed "$app"; then
echo "[OK] $app is already installed."
else
echo "[INSTALL] Installing $app..."
install_package "$app"
fi
done
echo
echo "Done."