diff --git a/core/tabs/system-setup/debian/unattendet-upgrades.sh b/core/tabs/system-setup/debian/unattendet-upgrades.sh index d2a0c2d..15bc59f 100644 --- a/core/tabs/system-setup/debian/unattendet-upgrades.sh +++ b/core/tabs/system-setup/debian/unattendet-upgrades.sh @@ -31,6 +31,33 @@ command_exists() { command -v "$@" >/dev/null 2>&1 } +# ─< Check if the given command exists silently >───────────────────────────────────────── +command_exists() { + command -v "$@" >/dev/null 2>&1 +} + +# ─< Check if the user is root and set sudo variable if necessary >─────────────────────── +check_root() { + if [ "$(id -u)" -ne 0 ]; then + if command_exists sudo; then + echo_info "User is not root. Using sudo for privileged operations." + _sudo="sudo" + else + echo_error "No sudo found and you're not root! Can't install packages." + return 1 + fi + else + echo_info "Root access confirmed." + _sudo="" + fi +} + +run_setup() { + if command_exists unattended-upgrades; then + $_sudo systemctl enable --now unattended-upgrades || echo_error "Something went wrong! Could not setup the service/autostart" + fi +} + run_checks() { echo_info "Checking if unattended-upgrades is active..." @@ -40,7 +67,7 @@ run_checks() { else echo_warning "unattended-upgrades is not installed. Attempting to install..." if command_exists apt-get; then - if apt-get update && apt-get install --assume-yes unattended-upgrades; then + if $_sudo apt-get update && $_sudo apt-get install --assume-yes unattended-upgrades; then echo_note "unattended-upgrades successfully installed." else echo_error "Failed to install unattended-upgrades. Exiting." @@ -56,31 +83,20 @@ run_checks() { UNATTENDED_UPGRADES_FILE="/etc/apt/apt.conf.d/50unattended-upgrades" if [ -f "$UNATTENDED_UPGRADES_FILE" ]; then echo_info "Configuring unattended upgrades in $UNATTENDED_UPGRADES_FILE" - # Add or modify configurations as needed - # Example: $_sudo sed -i 's/old_value/new_value/' "$UNATTENDED_UPGRADES_FILE" + run_setup || echo_error "Something went wrong when configuring unattended-upgrades.." else echo_error "Unattended upgrades file not found!" fi } -run_setup() { - if command_exists unattended-upgrades; then - systemctl enable --now unattended-upgrades || echo_error "Something went wrong! Could not setup the service/autostart" - fi -} - # Main script main() { echo_info "Starting unattended-upgrades check script..." - if [ "$(id -u)" -ne 0 ]; then - echo_error "This script must be run as root. Please run with sudo." - exit 1 + if check_root; then + run_checks + # run_setup fi - - run_checks - - run_setup && echo_note "Script completed successfully!" } main