35 lines
1.1 KiB
Bash
Executable File
35 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# format: print '-' when the count is 0 so the output is readable rather than "0".
|
|
format() {
|
|
if [ "$1" -eq 0 ]; then
|
|
echo '-'
|
|
else
|
|
echo "$1"
|
|
fi
|
|
}
|
|
|
|
# checkupdates (pacman-contrib) queries the official repos without touching the local db.
|
|
# wc -l counts the resulting lines; failure (no updates / error) falls back to 0.
|
|
if ! updates_arch="$(checkupdates | wc -l)"; then
|
|
updates_arch=0
|
|
fi
|
|
|
|
# yay -Qum lists AUR packages where the local version is behind the AUR version.
|
|
# 2>/dev/null suppresses "no packages" warnings; failure falls back to 0.
|
|
if ! updates_aur="$(yay -Qum 2>/dev/null | wc -l)"; then
|
|
updates_aur=0
|
|
fi
|
|
|
|
# Total pending updates across both official repos and the AUR.
|
|
updates="$((updates_arch + updates_aur))"
|
|
|
|
if [ "$updates" -gt 0 ]; then
|
|
# Format: " (arch_count/aur_count)" — Nerd-Font package icon.
|
|
echo " ($(format $updates_arch)/$(format $updates_aur))"
|
|
else
|
|
# Print nothing when fully up-to-date (Waybar will show an empty text field).
|
|
echo
|
|
fi
|
|
# NOTE: original file contained a typo "fia" instead of "fi"; corrected above.
|