73 lines
1.8 KiB
Bash
Executable File
73 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# === IMPORTS ===
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
source "$SCRIPT_DIR/../Utility/NetworkCheck.sh"
|
|
source "$SCRIPT_DIR/../Utility/Log.sh"
|
|
|
|
# === Hilfe-Seite ===
|
|
if [[ "$*" == *"-h"* ]]; then
|
|
echo "Benutzung: $0"
|
|
echo
|
|
echo "Dieses Skript muss als root ausgeführt werden! Bsp. sudo $0"
|
|
echo "Für Debian basierende Distributionen."
|
|
echo
|
|
echo "Dieses Skript erneuert die Pakete von apt und Flatpak, falls das installiert ist."
|
|
exit 0
|
|
fi
|
|
|
|
# === 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
|
|
|
|
# === Variablen ===
|
|
WHOAMI=$(whoami)
|
|
USER=${SUDO_USER:-$WHOAMI}
|
|
DIR=$(pwd)
|
|
|
|
# === 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() {
|
|
if ! command -v flatpak >/dev/null 2 >&1; then
|
|
log "Flatpak ist nicht installiert. Vorgang wird übersprungen."
|
|
return
|
|
fi
|
|
|
|
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
|
|
|
|
cd "$(dirname "$0")"
|
|
sudo -u "$USER" git pull |& while IFS= read -r line; do log "$line"; done
|
|
cd "$DIR"
|
|
|
|
update_packages
|
|
update_flatpak
|
|
|
|
log "Update-Skript beendet"
|