Marty Oehme
2e0c992a54
Since the existing wayland module basically describes everything about my 'desktop environment' setup already anyway, might as well rename it accordingly. Additionally, mako is important for notifications in this environment so it moves here as well.
58 lines
1.8 KiB
Bash
Executable file
58 lines
1.8 KiB
Bash
Executable file
#!/bin/sh
|
|
#
|
|
# Check for available archupdates and return their number.
|
|
# Checks both repositories and aur,
|
|
# returns empty string when 0 packages are available, so
|
|
# that polybar simply displays nothing.
|
|
# Can be used to generate json-like output for waybar.
|
|
#
|
|
# dependencies: yay, (pacman-contrib optional)
|
|
# optional: jq
|
|
#
|
|
# Takes 2 arguments:
|
|
# Takes an optional integer argument, which is the minimum
|
|
# numer of package updates for an answer to be returned.
|
|
min_upd=${1:-0}
|
|
# Takes as second optional argument the output format
|
|
# Valid value is "json", everything else returns plain-text.
|
|
# json output requires jq.
|
|
format=${2:-plain}
|
|
|
|
# prefer checkupdates since it allows checking w/o partial upgrade
|
|
if command -v "checkupdates" >/dev/null; then
|
|
updates_repo="$(checkupdates 2>&1)"
|
|
fi
|
|
|
|
# fall back to yay, but be aware it will not find everything
|
|
# if checkupdates finds nothing or returns an error
|
|
if [ "$updates_repo" = "" ] || [ -z "${updates_repo##*==> ERROR: Cannot fetch updates*}" ]; then
|
|
updates_repo="$(yay -Qun 2>/dev/null)"
|
|
fi
|
|
updates_repo=$(echo "$updates_repo" | wc -l)
|
|
|
|
updates_aur="$(yay -Qum 2>/dev/null | wc -l)"
|
|
# updates_aur=$(cower -u 2> /dev/null | wc -l)
|
|
# updates_aur=$(trizen -Su --aur --quiet | wc -l)
|
|
# updates_aur=$(pikaur -Qua 2> /dev/null | wc -l)
|
|
# updates_aur=$(rua upgrade --printonly 2> /dev/null | wc -l)
|
|
|
|
updates=$((updates_repo + updates_aur))
|
|
|
|
text="${updates}"
|
|
alt="${updates_repo}|${updates_aur}"
|
|
tooltip="Repositories: ${updates_repo} | AUR: ${updates_aur}"
|
|
[ "$updates" -gt "$min_upd" ] && class="available" || class="empty"
|
|
if [ "$format" = "json" ]; then
|
|
printf "{\"text\": \"%s\", \"alt\": \"%s\", \"tooltip\": \"%s\", \"class\": \"%s\"}" \
|
|
"$text" \
|
|
"$alt" \
|
|
"$tooltip" \
|
|
"$class"
|
|
exit
|
|
fi
|
|
|
|
if [ "$updates" -gt "$min_upd" ]; then
|
|
echo "$updates"
|
|
else
|
|
echo ""
|
|
fi
|