refactor: add package installation function to streamline dependency checks
All checks were successful
Nix Format Check / check-format (pull_request) Successful in 37s

This commit is contained in:
Menno van Leeuwen 2025-01-22 15:29:45 +01:00
parent d92d0ed883
commit 4d57d69626
Signed by: vleeuwenmenno
SSH Key Fingerprint: SHA256:OJFmjANpakwD3F2Rsws4GLtbdz1TJ5tkQF0RZmF0TRE

View File

@ -365,6 +365,25 @@ check_command_availibility() {
fi
}
attempt_package_install() {
local package="$1"
local package_manager="$2"
local install_command="$3"
if ! command -v "$package" >/dev/null 2>&1; then
log_info "Installing $package using $package_manager..."
if [ "$package_manager" = "dnf" ]; then
sudo dnf install "$package" || die "Failed to install $package"
elif [ "$package_manager" = "apt" ]; then
sudo apt install "$package" || die "Failed to install $package"
elif [ "$package_manager" = "pacman" ]; then
sudo pacman -S "$package" || die "Failed to install $package"
else
die "Unsupported package manager: $package_manager"
fi
fi
}
# Check compatibility checks for supported distros:
# - Fedora
# - Ubuntu
@ -375,11 +394,9 @@ check_compatibility() {
die "This script was designed to run using bash, please run using bash"
fi
check_command_availibility "awk"
check_command_availibility "tail"
check_command_availibility "echo"
check_command_availibility "git"
check_command_availibility "sudo"
attempt_package_install "awk"
attempt_package_install "tail"
attempt_package_install "git"
local distro
distro=$(awk -F= '/^NAME/{print $2}' /etc/os-release | tr -d '"')