From efd938fd765b578773868607e9729db5e5a2a1ff Mon Sep 17 00:00:00 2001 From: TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> Date: Tue, 16 Jun 2026 09:03:32 +0900 Subject: modified cron/checkup --- ar/.local/bin/cron/checkup | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'ar/.local/bin/cron') diff --git a/ar/.local/bin/cron/checkup b/ar/.local/bin/cron/checkup index 86cba4a..99dafdf 100755 --- a/ar/.local/bin/cron/checkup +++ b/ar/.local/bin/cron/checkup @@ -3,6 +3,24 @@ # Syncs repositories and downloads updates, meant to be run as a cronjob. # /usr/share/libalpm/hooks/statusbar.hook +# Take an exclusive lock so two checkups never run at once, and so a manual +# update can yield this run. Interactive update commands can guard themselves +# with the same lock, e.g.: +# flock -n /tmp/checkup.lock sudo pacman -Syu +LOCKFILE="/tmp/checkup.lock" +exec 9>"$LOCKFILE" || exit 1 +if ! flock -n 9; then + notify-send "📦 Repository Sync" "Another checkup is already running. Skipping." + exit 0 +fi + +# Courtesy check: if pacman's database is already locked (e.g. you're running a +# manual update), back off quietly instead of failing on a lock error. +if [ -e /var/lib/pacman/db.lck ]; then + notify-send "📦 Repository Sync" "pacman is busy (db locked). Skipping this sync." + exit 0 +fi + notify-send "📦 Repository Sync" "Checking for package updates..." sudo pacman -Syyuw --noconfirm || notify-send "⛔ Error downloading updates. -- cgit v1.2.3