diff options
author | 135e2 <[email protected]> | 2022-01-18 21:21:24 +0800 |
---|---|---|
committer | 135e2 <[email protected]> | 2022-01-18 21:21:24 +0800 |
commit | 94ab643efbc9e33970a70f2d9889b4660ce5d169 (patch) | |
tree | f48c13e0ad4483fefe46a3330bbc52630283ffa6 /config/polybar/forest/scripts/updates.sh | |
parent | 839bada84376c56ba5115c7208b90ac8767757c7 (diff) | |
download | dotfiles-94ab643efbc9e33970a70f2d9889b4660ce5d169.tar.gz dotfiles-94ab643efbc9e33970a70f2d9889b4660ce5d169.tar.bz2 dotfiles-94ab643efbc9e33970a70f2d9889b4660ce5d169.zip |
config/polybar: new, 20220118
Diffstat (limited to 'config/polybar/forest/scripts/updates.sh')
-rwxr-xr-x | config/polybar/forest/scripts/updates.sh | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/config/polybar/forest/scripts/updates.sh b/config/polybar/forest/scripts/updates.sh new file mode 100755 index 0000000..70edf26 --- /dev/null +++ b/config/polybar/forest/scripts/updates.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash + +NOTIFY_ICON=/usr/share/icons/Papirus/32x32/apps/system-software-update.svg + +get_total_updates() { UPDATES=$(checkupdates 2>/dev/null | wc -l); } + +while true; do + get_total_updates + + # notify user of updates + if hash notify-send &>/dev/null; then + if (( UPDATES > 50 )); then + notify-send -u critical -i $NOTIFY_ICON \ + "You really need to update!!" "$UPDATES New packages" + elif (( UPDATES > 25 )); then + notify-send -u normal -i $NOTIFY_ICON \ + "You should update soon" "$UPDATES New packages" + elif (( UPDATES > 2 )); then + notify-send -u low -i $NOTIFY_ICON \ + "$UPDATES New packages" + fi + fi + + # when there are updates available + # every 10 seconds another check for updates is done + while (( UPDATES > 0 )); do + if (( UPDATES == 1 )); then + echo "$UPDATES" + elif (( UPDATES > 1 )); then + echo "$UPDATES" + else + echo "None" + fi + sleep 10 + get_total_updates + done + + # when no updates are available, use a longer loop, this saves on CPU + # and network uptime, only checking once every 30 min for new updates + while (( UPDATES == 0 )); do + echo "None" + sleep 1800 + get_total_updates + done +done |