From b91331307c91df3a4a31dfcfb8421d82225f1ad5 Mon Sep 17 00:00:00 2001 From: DragonSlayer_14 Date: Mon, 3 Mar 2025 23:03:41 +0100 Subject: [PATCH] =?UTF-8?q?Feat:=20F=C3=BCgt=20ein=20Update-Skript=20hinzu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Maintenance/Update.sh | 47 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100755 Maintenance/Update.sh diff --git a/Maintenance/Update.sh b/Maintenance/Update.sh new file mode 100755 index 0000000..95b0898 --- /dev/null +++ b/Maintenance/Update.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +# === IMPORTS === +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +source "$SCRIPT_DIR/../Utility/NetworkCheck.sh" +source "$SCRIPT_DIR/../Utility/Log.sh" + +# === ROOT-PRÜFUNG === +if [[ $EUID -ne 0 ]]; then + echo "Dieses Skript muss als root ausgeführt werden! Bitte starte es mit sudo." + exit 1 +fi + +# === Skript-Funktionen === +cleanup() { + log "Update-Skript abgebrochen" + exit 1 +} + +update_packages() { + log "Führe 'apt update' aus" + apt update |& while IFS= read -r line; do log "$line"; done + log "Befehl abgeschlossen" + + log "Führe 'apt upgrade' aus" + apt upgrade -y |& while IFS= read -r line; do log "$line"; done + log "Befehl abgeschlossen" +} + +update_flatpak() { + log "Führe 'flatpak update' für alle Nutzer aus" + for user in $(getent passwd | awk -F: '$3 >= 1000 && $7 !~ /(\/sbin\/nologin|\/bin\/false|\/usr\/sbin\/nologin)/ { print $1 }'); do + sudo -u "$user" flatpak update -y |& while IFS= read -r line; do log "$line"; done + log "Befehl 'sudo -u $user flatpak update' abgeschlossen" + done +} + +# === Hauptskript === + +trap cleanup SIGINT + +wait_for_internet_connection + +update_packages +update_flatpak + +log "Update-Skript beendet"