diff options
| author | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2026-06-16 09:03:32 +0900 |
|---|---|---|
| committer | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2026-06-16 09:11:02 +0900 |
| commit | efd938fd765b578773868607e9729db5e5a2a1ff (patch) | |
| tree | a88fe7f7c1c2c103361126a68547c01d1b9a9702 /ar/.local/bin/cron/checkup | |
| parent | 51c18f43c1742c15e4da94484403bf15bf62ff0d (diff) | |
modified cron/checkup
Diffstat (limited to 'ar/.local/bin/cron/checkup')
| -rwxr-xr-x | ar/.local/bin/cron/checkup | 18 |
1 files changed, 18 insertions, 0 deletions
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. |
