summaryrefslogtreecommitdiff
path: root/polybar/cuts/scripts/updates.sh
blob: 9dcc9032e7f5681a833398a69c0b2a5c36c7e12e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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