Hyprland-dotfiles/scripts/updates.sh

65 lines
1.9 KiB
Bash
Raw Normal View History

2023-12-03 11:50:14 -05:00
#!/bin/bash
2023-08-31 05:43:42 -04:00
# _ _ _ _
# | | | |_ __ __| | __ _| |_ ___ ___
# | | | | '_ \ / _` |/ _` | __/ _ \/ __|
# | |_| | |_) | (_| | (_| | || __/\__ \
# \___/| .__/ \__,_|\__,_|\__\___||___/
# |_|
#
# by Stephan Raabe (2023)
# -----------------------------------------------------
2023-09-12 09:13:41 -04:00
# Requires pacman-contrib trizen
2023-08-31 05:43:42 -04:00
# -----------------------------------------------------
# Define threshholds for color indicators
# -----------------------------------------------------
threshhold_green=0
threshhold_yellow=25
threshhold_red=100
# -----------------------------------------------------
# Calculate available updates pacman and aur (with trizen)
# -----------------------------------------------------
2023-08-31 05:43:42 -04:00
if ! updates_arch=$(checkupdates 2> /dev/null | wc -l ); then
updates_arch=0
fi
if ! updates_aur=$(trizen -Su --aur --quiet | wc -l); then
updates_aur=0
fi
updates=$(("$updates_arch" + "$updates_aur"))
# -----------------------------------------------------
2023-09-13 05:20:50 -04:00
# Testing
# -----------------------------------------------------
2023-09-13 05:20:50 -04:00
# Overwrite updates with numbers for testing
# updates=100
2023-09-13 05:20:50 -04:00
# test JSON output
# printf '{"text": "0", "alt": "0", "tooltip": "0 Updates", "class": "red"}'
# exit
2023-09-13 05:20:50 -04:00
# -----------------------------------------------------
# Output in JSON format for Waybar Module custom-updates
# -----------------------------------------------------
css_class="green"
if [ "$updates" -gt $threshhold_yellow ]; then
css_class="yellow"
2023-09-12 09:13:41 -04:00
fi
2023-09-13 05:20:50 -04:00
2023-09-12 09:13:41 -04:00
if [ "$updates" -gt $threshhold_red ]; then
css_class="red"
fi
2023-09-13 05:20:50 -04:00
if [ "$updates" -gt $threshhold_green ]; then
2024-05-30 08:05:19 -04:00
printf '{"text": "%s", "alt": "%s", "tooltip": "Click to update your system", "class": "%s"}' "$updates" "$updates" "$updates" "$css_class"
2023-08-31 05:43:42 -04:00
else
2024-05-30 08:05:19 -04:00
printf '{"text": "0", "alt": "0", "tooltip": "No updates available", "class": "green"}'
2023-08-31 05:43:42 -04:00
fi