Update notification script for bootc upgrade process
This commit is contained in:
@@ -2,12 +2,22 @@
|
|||||||
|
|
||||||
TAG="bootc-notifier"
|
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}')
|
TARGET_USER=$(loginctl list-sessions --no-legend | awk '$3 != "root" {print $3; exit}')
|
||||||
USER_ID=$(id -u "$TARGET_USER")
|
USER_ID=$(id -u "$TARGET_USER")
|
||||||
RUNTIME_DIR="/run/user/$USER_ID"
|
RUNTIME_DIR="/run/user/$USER_ID"
|
||||||
|
|
||||||
# 2. Benachrichtigung senden
|
# 4. Benachrichtigung senden
|
||||||
# -a "System-Update" setzt den Namen in der Titelleiste
|
# -a "System-Update" setzt den Namen in der Titelleiste
|
||||||
# --action definiert den Button
|
# --action definiert den Button
|
||||||
# --wait lässt das Skript auf die Reaktion warten
|
# --wait lässt das Skript auf die Reaktion warten
|
||||||
@@ -20,7 +30,7 @@ RESPONSE=$(sudo -u "$TARGET_USER" \
|
|||||||
--action="reboot=Jetzt neu starten" \
|
--action="reboot=Jetzt neu starten" \
|
||||||
--wait)
|
--wait)
|
||||||
|
|
||||||
# 3. Auswertung
|
# 5. Auswertung
|
||||||
if [[ "$RESPONSE" == "reboot" ]]; then
|
if [[ "$RESPONSE" == "reboot" ]]; then
|
||||||
logger -t "$TAG" "User wählte Neustart über Benachrichtigungs-Button."
|
logger -t "$TAG" "User wählte Neustart über Benachrichtigungs-Button."
|
||||||
systemctl reboot
|
systemctl reboot
|
||||||
|
|||||||
Reference in New Issue
Block a user