scripts/varios/updates-void.sh

51 lines
1.3 KiB
Bash
Executable File

#!/bin/sh
# 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
#
# Shell: POSIX compliant
# Autor: O. Sánchez <o-sanchez@linuxmail.org>
set -u
TMP_UPDATES=$(mktemp -d /tmp/updates_void.XXXX)
xbps-install -nuM 1>"${TMP_UPDATES}"/updates 2>"${TMP_UPDATES}"/error
UPDATES="$(awk 'END {print NR}' "${TMP_UPDATES}"/updates)"
BROKEN="$(grep -c broken "${TMP_UPDATES}"/error)"
PKGS="$(awk '{printf "%-30s %s\n", $1, $2}' "${TMP_UPDATES}"/updates)"
deps() {
if ! command -v dzen2 >/dev/null; then
printf '%b\n' "Dependencia no satisfecha:\n\tInstale dzen2\n"
exit 1
fi
}
msg() {
dzen2 -p -fn 'JetBrains Mono:size=8:style=bold' -ta 5 \
-w 260 -x 1100 -y 25 -l 10
}
if deps; then
if [ "$BROKEN" = 0 ] && [ "$UPDATES" -ge 1 ]; then
"$HOME"/Dropbox/Gitea/scripts/varios/dunst_sound
printf '%s\n' "ACTUALIZACIONES DISPONIBLES: $UPDATES" "$PKGS" | msg &
rm -r "${TMP_UPDATES}"
exit 0
elif [ "$BROKEN" -ge 1 ]; 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