Update notify-bootc-user.sh

This commit is contained in:
humocs-man
2026-05-14 20:23:21 +02:00
committed by GitHub
parent e35f204d1d
commit 90c4dff5b0
+17 -14
View File
@@ -12,6 +12,7 @@ SYSTEMCTL="/usr/bin/systemctl"
TAG="bootc-timer" TAG="bootc-timer"
# 1. Upgrade ausführen # 1. Upgrade ausführen
# Das System lädt das Image im Hintergrund herunter
OUTPUT=$($BOOTC upgrade 2>&1) OUTPUT=$($BOOTC upgrade 2>&1)
EXIT_STATUS=$? EXIT_STATUS=$?
@@ -21,11 +22,12 @@ if [[ $EXIT_STATUS -ne 0 ]]; then
fi fi
# 2. Status-Check via JSON # 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." $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 TARGET_USER=$($LOGINCTL list-sessions --no-legend | while read -r id user rest; do
S_TYPE=$($LOGINCTL show-session "$id" -p Type --value) S_TYPE=$($LOGINCTL show-session "$id" -p Type --value)
S_STATE=$($LOGINCTL show-session "$id" -p State --value) S_STATE=$($LOGINCTL show-session "$id" -p State --value)
@@ -37,18 +39,19 @@ if $BOOTC status --json | grep -q '"staged":{'; then
done) done)
if [[ -n "$TARGET_USER" ]]; then if [[ -n "$TARGET_USER" ]]; then
USER_ID=$($ID_BIN -u "$TARGET_USER") USER_ID=$($ID_BIN -u "$TARGET_USER")
# Wichtig: XDG_RUNTIME_DIR hinzufügen # 4. Benachrichtigung senden
ACTION=$($SUDO -u "$TARGET_USER" \ # env stellt sicher, dass die Variablen beim User ankommen
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$USER_ID/bus \ ACTION=$($SUDO -u "$TARGET_USER" \
XDG_RUNTIME_DIR=/run/user/$USER_ID \ env DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$USER_ID/bus \
$NOTIFY "System-Update bereit" \ XDG_RUNTIME_DIR=/run/user/$USER_ID \
"Ein neues Image wurde heruntergeladen. Jetzt neu starten?" \ $NOTIFY "System-Update bereit" \
--icon=software-update-available \ "Ein neues Image wurde heruntergeladen. Jetzt neu starten?" \
--urgency=critical \ --icon=software-update-available \
--action="reboot=Jetzt neu starten" \ --urgency=critical \
--wait) --action="reboot=Jetzt neu starten" \
--wait)
$LOGGER -t "$TAG" "Benachrichtigung gesendet. Antwort: $ACTION" $LOGGER -t "$TAG" "Benachrichtigung gesendet. Antwort: $ACTION"