From 90c4dff5b0a80ca1d28e61100925325c2f50434f Mon Sep 17 00:00:00 2001 From: humocs-man <251756307+humocs-man@users.noreply.github.com> Date: Thu, 14 May 2026 20:23:21 +0200 Subject: [PATCH] Update notify-bootc-user.sh --- scripts/notify-bootc-user.sh | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/scripts/notify-bootc-user.sh b/scripts/notify-bootc-user.sh index 0d1f36d..da49cb0 100755 --- a/scripts/notify-bootc-user.sh +++ b/scripts/notify-bootc-user.sh @@ -12,6 +12,7 @@ SYSTEMCTL="/usr/bin/systemctl" TAG="bootc-timer" # 1. Upgrade ausführen +# Das System lädt das Image im Hintergrund herunter OUTPUT=$($BOOTC upgrade 2>&1) EXIT_STATUS=$? @@ -21,11 +22,12 @@ if [[ $EXIT_STATUS -ne 0 ]]; then fi # 2. Status-Check via JSON -if $BOOTC status --json | grep -q '"staged":{'; then +# Prüfen, ob ein Image bereitsteht ("staged") +if $BOOTC status --json | grep -q '"staged"'; then $LOGGER -t "$TAG" "Neues Image erfolgreich gestaged." - # 3. Den aktiven User finden + # 3. Den aktiven Desktop-User finden TARGET_USER=$($LOGINCTL list-sessions --no-legend | while read -r id user rest; do S_TYPE=$($LOGINCTL show-session "$id" -p Type --value) S_STATE=$($LOGINCTL show-session "$id" -p State --value) @@ -37,18 +39,19 @@ if $BOOTC status --json | grep -q '"staged":{'; then done) if [[ -n "$TARGET_USER" ]]; then - USER_ID=$($ID_BIN -u "$TARGET_USER") - - # Wichtig: XDG_RUNTIME_DIR hinzufügen - ACTION=$($SUDO -u "$TARGET_USER" \ - DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$USER_ID/bus \ - XDG_RUNTIME_DIR=/run/user/$USER_ID \ - $NOTIFY "System-Update bereit" \ - "Ein neues Image wurde heruntergeladen. Jetzt neu starten?" \ - --icon=software-update-available \ - --urgency=critical \ - --action="reboot=Jetzt neu starten" \ - --wait) + USER_ID=$($ID_BIN -u "$TARGET_USER") + + # 4. Benachrichtigung senden + # env stellt sicher, dass die Variablen beim User ankommen + ACTION=$($SUDO -u "$TARGET_USER" \ + env DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$USER_ID/bus \ + XDG_RUNTIME_DIR=/run/user/$USER_ID \ + $NOTIFY "System-Update bereit" \ + "Ein neues Image wurde heruntergeladen. Jetzt neu starten?" \ + --icon=software-update-available \ + --urgency=critical \ + --action="reboot=Jetzt neu starten" \ + --wait) $LOGGER -t "$TAG" "Benachrichtigung gesendet. Antwort: $ACTION"