Dotfiles/desktopenvs/hyprlua/waybar/scripts/myupdate.sh

30 lines
936 B
Bash
Executable File

#!/bin/bash
# Prefer AUR helpers over plain pacman when they are on PATH.
# hash is faster than which for simple existence checks.
pkgmgr="pacman"
hash paru 2>/dev/null && pkgmgr="paru"
hash yay 2>/dev/null && pkgmgr="yay"
# Set IFS to newlines so the package-list array splits on lines, not spaces.
# \r is included to handle any Windows-style line endings from the output.
IFS=$'\n'$'\r'
# -Qu lists packages that have an available upgrade; array length = update count.
updatesli=($($pkgmgr -Qu))
text=${#updatesli[@]}
# Show an empty icon when up-to-date; show a package emoji when updates are pending.
icon=""
[ $text -eq 0 ] && icon="" || icon="📦"
# Build the tooltip string by concatenating each pending package on its own line.
for i in ${updatesli[@]}
do
tooltip+="$i\n"
done
# Emit a Waybar JSON payload: text is the status icon, tooltip shows the count.
cat << EOF
{ "text":"$icon", "tooltip":"UPDATES: $text"}
EOF