fix(moonup): keep terminal open on errors via EXIT trap
The previous end-of-script `read` never ran when `set -e` aborted mid-way (pacman conflict, paru failure, Ctrl+C), so foot closed on errors — exactly when the user most needs to see the output. Move the pause into a trap on EXIT, gated by `MOONUP_WAIT=1` so CLI use stays non-interactive. Waybar on-click now sets the env var.
This commit is contained in:
parent
c2cee85488
commit
373bfd4a9b
@ -217,7 +217,7 @@
|
|||||||
},
|
},
|
||||||
"exec": "moonarch-waybar-updates",
|
"exec": "moonarch-waybar-updates",
|
||||||
"interval": 60,
|
"interval": 60,
|
||||||
"on-click": "foot moonarch-update"
|
"on-click": "foot env MOONUP_WAIT=1 moonarch-update"
|
||||||
},
|
},
|
||||||
"custom/notification": {
|
"custom/notification": {
|
||||||
"tooltip": true,
|
"tooltip": true,
|
||||||
|
|||||||
@ -19,6 +19,21 @@ _t() {
|
|||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Pause on exit when launched from a GUI (Waybar sets MOONUP_WAIT=1).
|
||||||
|
# Runs via trap so it fires even when `set -e` aborts the script mid-way.
|
||||||
|
_pause_on_exit() {
|
||||||
|
local rc=$?
|
||||||
|
if [[ -n "${MOONUP_WAIT:-}" && -t 0 ]]; then
|
||||||
|
echo
|
||||||
|
if (( rc != 0 )); then
|
||||||
|
echo -e "\e[1;31m[Moonarch ERROR]\e[0m $(_t "Exited with error (code $rc)" "Mit Fehler beendet (Code $rc)")" >&2
|
||||||
|
fi
|
||||||
|
read -n 1 -s -r -p "$(_t "Press any key to close..." "Beliebige Taste drücken zum Schließen …")" || true
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
trap _pause_on_exit EXIT
|
||||||
|
|
||||||
# --- Helper functions ---
|
# --- Helper functions ---
|
||||||
|
|
||||||
log() {
|
log() {
|
||||||
@ -120,9 +135,3 @@ log ""
|
|||||||
log "============================================"
|
log "============================================"
|
||||||
log " $(_t "Moonarch update complete!" "Moonarch-Aktualisierung abgeschlossen!")"
|
log " $(_t "Moonarch update complete!" "Moonarch-Aktualisierung abgeschlossen!")"
|
||||||
log "============================================"
|
log "============================================"
|
||||||
|
|
||||||
# Keep terminal open when launched from a GUI (e.g. Waybar on-click)
|
|
||||||
if [[ -t 0 ]]; then
|
|
||||||
echo
|
|
||||||
read -n 1 -s -r -p "$(_t "Press any key to close..." "Beliebige Taste drücken zum Schließen …")"
|
|
||||||
fi
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user