diff --git a/scripts/notify-bootc-user.sh b/scripts/notify-bootc-user.sh index a6cb01a..b5a6c8a 100755 --- a/scripts/notify-bootc-user.sh +++ b/scripts/notify-bootc-user.sh @@ -2,12 +2,22 @@ TAG="bootc-notifier" -# 1. User finden +# 1. Das eigentliche Upgrade ausführen und Output speichern +# Wir entfernen --quiet, damit wir den Output parsen können +OUTPUT=$(/usr/bin/bootc upgrade 2>&1) +EXIT_STATUS=$? + +# 2. Prüfen: War der Befehl erfolgreich UND wurde ein neues Image bereitgestellt? +if [[ $EXIT_STATUS -eq 0 ]] && echo "$OUTPUT" | grep -iq "Queued for next boot"; then + + logger -t "$TAG" "Neues Image geladen. Starte User-Benachrichtigung." + +# 3. User finden TARGET_USER=$(loginctl list-sessions --no-legend | awk '$3 != "root" {print $3; exit}') USER_ID=$(id -u "$TARGET_USER") RUNTIME_DIR="/run/user/$USER_ID" -# 2. Benachrichtigung senden +# 4. Benachrichtigung senden # -a "System-Update" setzt den Namen in der Titelleiste # --action definiert den Button # --wait lässt das Skript auf die Reaktion warten @@ -20,7 +30,7 @@ RESPONSE=$(sudo -u "$TARGET_USER" \ --action="reboot=Jetzt neu starten" \ --wait) -# 3. Auswertung +# 5. Auswertung if [[ "$RESPONSE" == "reboot" ]]; then logger -t "$TAG" "User wählte Neustart über Benachrichtigungs-Button." systemctl reboot