140 lines
3.2 KiB
Bash
Executable File
140 lines
3.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# check updates and show how many packages to update in Conky
|
|
# We don't need to run checkupdates at Conky start as it takes few seconds and block Conky
|
|
|
|
if (( $EUID != 0 )); then
|
|
source ~/.config/mabox/mabox.conf
|
|
fi
|
|
|
|
UPDATES_LIST="/tmp/updates/updates_list"
|
|
AUR_UPDATES_LIST="/tmp/updates/aur_updates_list"
|
|
|
|
if [[ ! -f "$UPDATES_LIST" ]];then
|
|
mkdir -p /tmp/updates
|
|
touch "$UPDATES_LIST"
|
|
chmod 666 "${UPDATES_LIST}"
|
|
fi
|
|
|
|
if [[ ! -f "$AUR_UPDATES_LIST" ]]; then
|
|
touch "$AUR_UPDATES_LIST"
|
|
chmod 666 "$AUR_UPDATES_LIST"
|
|
fi
|
|
|
|
do_checkupdates() {
|
|
/usr/bin/checkupdates > "$UPDATES_LIST"
|
|
}
|
|
|
|
do_checkaurupdates() {
|
|
yay -Qua | grep -v '\.$' > "$AUR_UPDATES_LIST" 2>/dev/null
|
|
}
|
|
|
|
sys_checkupdates() {
|
|
do_checkupdates
|
|
do_checkaurupdates
|
|
exit 0
|
|
}
|
|
|
|
count_pkgs(){
|
|
REPO=$(wc -l $UPDATES_LIST | awk '{print $1}')
|
|
AUR=$(wc -l $AUR_UPDATES_LIST | awk '{print $1}')
|
|
PKGS=$((REPO + AUR))
|
|
mb-setvar updates=${PKGS}
|
|
}
|
|
|
|
case "$LANG" in
|
|
pl*)
|
|
AVAIL_UPDATES="Dostępne aktualizacje"
|
|
UPTODATE="System jest aktualny"
|
|
PKGS_TO_UPDATE="Pakiety do aktualizacji:"
|
|
YAY_UPD="Użyj yay (cli)"
|
|
PAMAC_UPD="Użyj Pamac (GUI)"
|
|
DISABLE="Wyłącz powiadomienia"
|
|
;;
|
|
es*)
|
|
AVAIL_UPDATES="Actualizaciones disponibles"
|
|
UPTODATE="El sistema esta actualizado"
|
|
PKGS_TO_UPDATE="Paquetes para actualizar:"
|
|
YAY_UPD="Actualizar con yay (cli)"
|
|
PAMAC_UPD="Actualizar con Pamac (GUI)"
|
|
DISABLE="Deshabilitar notificaciones"
|
|
;;
|
|
*)
|
|
AVAIL_UPDATES="Available updates"
|
|
UPTODATE="System is up to date"
|
|
PKGS_TO_UPDATE="Packages to update:"
|
|
YAY_UPD="Update with yay (cli)"
|
|
PAMAC_UPD="Update with Pamac (GUI)"
|
|
DISABLE="Disable notifications"
|
|
;;
|
|
esac
|
|
|
|
notify_updates_available() {
|
|
if [ "${1}" == "-p" ];then
|
|
notify-send.sh -u critical -i mbcc "$AVAIL_UPDATES" "$PKGS_TO_UPDATE $PKGS" -o "$YAY_UPD:terminator -T '$YAY_UPD' -e yay" \
|
|
-o "$PAMAC_UPD:pamac-manager --updates"
|
|
else
|
|
notify-send.sh -u critical -i mbcc "$AVAIL_UPDATES" "$PKGS_TO_UPDATE $PKGS" -o "$YAY_UPD:terminator -T '$YAY_UPD' -e yay" \
|
|
-o "$PAMAC_UPD:pamac-manager --updates" -o "$DISABLE:mb-setvar update_notifications=false"
|
|
fi
|
|
}
|
|
|
|
from_conky(){
|
|
if [ -f /tmp/"$CONKYPID" ]; then
|
|
do_checkupdates
|
|
do_checkaurupdates
|
|
count_pkgs
|
|
if [ "$PKGS" != "0" ]; then
|
|
if [[ "$update_notifications" != "false" ]];then
|
|
notify_updates_available
|
|
fi
|
|
printf "\${font}\${alignr} $AVAIL_UPDATES: \${color red}"
|
|
echo "$PKGS"
|
|
else
|
|
printf "\${font}\${color}\${alignr} $UPTODATE"
|
|
fi
|
|
else
|
|
touch /tmp/"${CONKYPID}"
|
|
fi
|
|
}
|
|
|
|
from_panel(){
|
|
do_checkupdates
|
|
do_checkaurupdates
|
|
count_pkgs
|
|
if [ "$PKGS" != "0" ]; then
|
|
notify_updates_available -p
|
|
else
|
|
notify-send.sh -u critical -i mbcc "Updates" "$UPTODATE"
|
|
fi
|
|
}
|
|
|
|
from_cli(){
|
|
do_checkupdates
|
|
do_checkaurupdates
|
|
count_pkgs
|
|
if [ "$PKGS" != "0" ];then
|
|
echo "$AVAIL_UPDATES $PKGS"
|
|
cat "$UPDATES_LIST"
|
|
cat "$AUR_UPDATES_LIST"
|
|
else
|
|
echo "$UPTODATE"
|
|
fi
|
|
}
|
|
|
|
|
|
case "$1" in
|
|
-s)
|
|
CONKYPID=$(pgrep -f sysinfo_mbcolor)
|
|
from_conky;;
|
|
-g)
|
|
CONKYPID=$(pgrep -f sysinfo_graph_mbcolor)
|
|
from_conky;;
|
|
-m)
|
|
CONKYPID=$(pgrep -f mabox_info_mbcolor)
|
|
from_conky;;
|
|
-p)from_panel;;
|
|
-u)sys_checkupdates;;
|
|
*)from_cli;;
|
|
esac
|