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
98d2ad57db
3 files changed
+17
-1
No files matched your search
@@ -170,7 +170,9 @@ cau_do_status() {
|
|||||||
|
|
||||||
cau_do_run() {
|
cau_do_run() {
|
||||||
cau_need_root
|
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() {
|
cau_do_log() {
|
||||||
|
|||||||
@@ -40,6 +40,13 @@ if [[ $EUID -ne 0 ]]; then
|
|||||||
exit 2
|
exit 2
|
||||||
fi
|
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
|
# 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
|
# of a pacman transaction and leave the database half-written. Done before
|
||||||
# anything else so the whole pass is covered, including the lock.
|
# anything else so the whole pass is covered, including the lock.
|
||||||
|
|||||||
@@ -76,9 +76,16 @@ cau_pacman_update() {
|
|||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ -n $CAU_PACMAN_PENDING ]]; then
|
||||||
CAU_PACMAN_COUNT="$(grep -c . <<< "$CAU_PACMAN_PENDING")"
|
CAU_PACMAN_COUNT="$(grep -c . <<< "$CAU_PACMAN_PENDING")"
|
||||||
[[ $CAU_PACMAN_COUNT =~ ^[0-9]+$ ]] || CAU_PACMAN_COUNT=0
|
[[ $CAU_PACMAN_COUNT =~ ^[0-9]+$ ]] || CAU_PACMAN_COUNT=0
|
||||||
cau_info "Updating $CAU_PACMAN_COUNT repository package(s)"
|
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)
|
mapfile -t flags < <(cau_pacman_flags)
|
||||||
log="$(mktemp)" || return 1
|
log="$(mktemp)" || return 1
|
||||||
|
|||||||
Reference in new issue
Block a user