38 lines
718 B
Plaintext
38 lines
718 B
Plaintext
|
#!/usr/bin/env bash
|
||
|
set -euf -o pipefail
|
||
|
|
||
|
trap 'rm /tmp/{pacmanupdates,aurupdates} 2>/dev/null' INT TERM QUIT EXIT
|
||
|
|
||
|
# how long between checks
|
||
|
interval=${1:-72000}
|
||
|
|
||
|
# check internet connection
|
||
|
connection() {
|
||
|
ping -q -c 1 1.1.1.1 > /dev/null || exit
|
||
|
}
|
||
|
|
||
|
checker() {
|
||
|
while true; do
|
||
|
nb_pac=$(checkupdates | tee /tmp/pacmanupdates | wc -l)
|
||
|
nb_aur=$(yay -Qua | tee /tmp/aurupdates | wc -l)
|
||
|
|
||
|
if ((nb_pac>0 || nb_aur>0)); then
|
||
|
((nb_aur>0)) && nb_aur="+ ${nb_aur}" && cat /tmp/aurupdates >> /tmp/pacmanupdates
|
||
|
((nb_aur==0)) && unset nb_aur
|
||
|
notify-send " You have ${nb_pac} ${nb_aur} updates"
|
||
|
fi
|
||
|
|
||
|
sleep "$interval"
|
||
|
done
|
||
|
}
|
||
|
|
||
|
waiter() {
|
||
|
if ! connection ; then
|
||
|
sleep 30 && waiter
|
||
|
else
|
||
|
checker
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
waiter
|