Fix locale handling, menu re-entry and empty-checkupdates logging
- The runner now forces LC_ALL=C itself instead of relying on the unit's Environment=. pacman failures are classified by matching its output, so a run started by hand on a German system was misclassifying every failure. - 'Update now' in the menu exec'd the runner, which terminated the menu. - Log a distinct message when checkupdates is unavailable, instead of claiming zero pending packages before a full upgrade.
This commit is contained in:
1 parent
ceb024d7be
commit
459cbbf8e7
3 files changed
+17
-1
No files matched your search
@@ -170,7 +170,9 @@ cau_do_status() {
|
||||
|
||||
cau_do_run() {
|
||||
cau_need_root
|
||||
exec "$CAU_LIBEXECDIR/cachy-auto-update-run" "$@"
|
||||
# Not exec'd: this is also called from the menu, which has to survive the
|
||||
# run and redraw afterwards.
|
||||
"$CAU_LIBEXECDIR/cachy-auto-update-run" "$@"
|
||||
}
|
||||
|
||||
cau_do_log() {
|
||||
|
||||
@@ -40,6 +40,13 @@ if [[ $EUID -ne 0 ]]; then
|
||||
exit 2
|
||||
fi
|
||||
|
||||
# Force a neutral locale here rather than relying on the unit's Environment=,
|
||||
# so a run started by hand behaves exactly like one started by the timer.
|
||||
# pacman failures are classified by matching its output, and on a German system
|
||||
# that output is German. Text aimed at a person does not come through here - a
|
||||
# notification is rendered in the recipient's own locale by cau_msg_in.
|
||||
export LC_ALL=C LANGUAGE=
|
||||
|
||||
# Re-exec under an inhibitor so a suspend or shutdown cannot land in the middle
|
||||
# of a pacman transaction and leave the database half-written. Done before
|
||||
# anything else so the whole pass is covered, including the lock.
|
||||
|
||||
@@ -76,9 +76,16 @@ cau_pacman_update() {
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [[ -n $CAU_PACMAN_PENDING ]]; then
|
||||
CAU_PACMAN_COUNT="$(grep -c . <<< "$CAU_PACMAN_PENDING")"
|
||||
[[ $CAU_PACMAN_COUNT =~ ^[0-9]+$ ]] || CAU_PACMAN_COUNT=0
|
||||
cau_info "Updating $CAU_PACMAN_COUNT repository package(s)"
|
||||
else
|
||||
# checkupdates is unavailable, so the list is unknown and pacman is
|
||||
# asked to work it out itself.
|
||||
CAU_PACMAN_COUNT=0
|
||||
cau_info "Running a full system upgrade (pending list unavailable)"
|
||||
fi
|
||||
|
||||
mapfile -t flags < <(cau_pacman_flags)
|
||||
log="$(mktemp)" || return 1
|
||||
|
||||
Reference in new issue
Block a user