44 lines
941 B
Bash

#!/usr/bin/env bash
if [[ -n "${ATLAS_PACKAGES_SH_LOADED:-}" ]]; then
return 0
fi
ATLAS_PACKAGES_SH_LOADED=1
atlas_package_installed() {
local package_name="$1"
dpkg-query -W -f='${Status}' "$package_name" 2>/dev/null | grep -q '^install ok installed$'
}
atlas_package_status() {
local package_name="$1"
if atlas_package_installed "$package_name"; then
printf 'installed\n'
else
printf 'missing\n'
fi
}
atlas_install_packages() {
if [[ "$#" -eq 0 ]]; then
atlas_log_warn "No packages requested"
return 0
fi
if [[ "${ATLAS_DRY_RUN:-0}" == "1" ]]; then
atlas_log_info "Dry-run mode: would install packages: $*"
return 0
fi
atlas_log_info "Installing packages: $*"
atlas_sudo_run apt-get install -y "$@"
}
atlas_pending_update_count() {
apt list --upgradable 2>/dev/null | awk 'NR > 1 {count++} END {print count + 0}'
}
atlas_reboot_required() {
[[ -f /var/run/reboot-required ]]
}