#!/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."