45 lines
942 B
Bash
45 lines
942 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 ]]
|
|
}
|
|
|