50 lines
1.4 KiB
Bash
50 lines
1.4 KiB
Bash
|
#!/bin/ksh
|
||
|
# Script que revisa si existen actualizaciones disponibles para el sistema
|
||
|
# Dependencas: dzen2
|
||
|
#
|
||
|
# Lista de códigos de salida
|
||
|
# 0 - Operación exitosa
|
||
|
# 1 - Dependencia no cumplida
|
||
|
# 3 - Paquetes rotos
|
||
|
# 4 - Operación exitosa, pero no hubo cambios
|
||
|
#
|
||
|
# NOTA: count_lines es una función personalizada de ksh
|
||
|
#
|
||
|
# Autor: Tuxliban Torvalds <o-sanchez@linuxmail.org> 2022 - 2023
|
||
|
|
||
|
TMP_UPDATES=$(mktemp -d /tmp/updates_void.XXXX)
|
||
|
xbps-install -nuM 1>${TMP_UPDATES}/updates 2>${TMP_UPDATES}/error
|
||
|
UPDATES="$(count_lines ${TMP_UPDATES}/updates)"
|
||
|
BROKEN="$(< ${TMP_UPDATES}/error)"
|
||
|
PKGS="$(awk '{printf "%-25s %s\n", $1, $2}' ${TMP_UPDATES}/updates)"
|
||
|
|
||
|
|
||
|
function deps {
|
||
|
if ! command -v dzen2 >/dev/null; then
|
||
|
printf '%b\n' "Dependencia no satisfecha:\n\tInstale dzen2\n"
|
||
|
exit 1
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
function msg {
|
||
|
dzen2 -p -fn 'JetBrains Mono:size=8:style=bold' -ta 5 \
|
||
|
-w 260 -x 1100 -y 25 -l 10
|
||
|
}
|
||
|
|
||
|
if deps; then
|
||
|
if [[ -z $BROKEN && -n $UPDATES ]]; then
|
||
|
"$HOME"/Dropbox/Gitea/scripts/varios/dunst_sound 2> /dev/null
|
||
|
printf '%s\n' "ACTUALIZACIONES DISPONIBLES: $UPDATES" "$PKGS" | msg &
|
||
|
rm -r ${TMP_UPDATES}
|
||
|
exit 0
|
||
|
elif [[ -n $BROKEN ]]; then
|
||
|
printf '%s\n' "HAY PAQUETES ROTOS" "$(awk '{printf "%-30s %s\n", $1, $5}' \
|
||
|
${TMP_UPDATES}/error)" | msg &
|
||
|
rm -r ${TMP_UPDATES}
|
||
|
exit 3
|
||
|
else
|
||
|
[[ -z $UPDATES ]] || rm -r ${TMP_UPDATES}
|
||
|
exit 4
|
||
|
fi
|
||
|
fi
|