68 lines
1.7 KiB
Bash
Executable File
68 lines
1.7 KiB
Bash
Executable File
#!/bin/ksh
|
|
# Script para consultar el sitio de origen del paquete (upstream) en busca de nuevas versiones.
|
|
# Se recomienda añadir este script en una tarea de crontab
|
|
# Dependencias: xbps-src, xtools, dzen2
|
|
#
|
|
# Autor: Tuxliban Torvalds <o-sanchez@linuxmail.org>
|
|
# v1.0
|
|
|
|
set -u
|
|
|
|
tmp_dir=$(mktemp -d /tmp/xpkglocal.XXXXX)
|
|
admin=$(which_sudo)
|
|
|
|
|
|
function do_install {
|
|
if [[ $admin == su ]]; then
|
|
su root -c 'xbps-install "$@"' -- sh "$@"
|
|
else
|
|
$admin xbps-install "$@"
|
|
fi
|
|
}
|
|
|
|
function msg {
|
|
dzen2 -p -fn 'JetBrains Mono:size=8:style=bold' -ta 5 \
|
|
-w 260 -x 1100 -y 25 -l 20
|
|
}
|
|
|
|
|
|
# Verificar que las dependencias estén instaladas
|
|
for cmd in xpkg dzen2; do
|
|
if ! command -v $cmd >/dev/null 2>&1; then
|
|
printf '%b' "\033[31;5m[ERROR] '$cmd' es requerido, instalando el paquete...\033[0m\n"
|
|
do_install $cmd
|
|
fi
|
|
done
|
|
|
|
if [ ! -f "$HOME"/void-packages/xbps-src ]; then
|
|
printf '%s\n' "No se encontró repositorio git de Void Linux. Clonadolo..."
|
|
git -C "$HOME" clone --depth=1 https://github.com/void-linux/void-packages.git
|
|
cd "$HOME"/void-packages || exit
|
|
./xbps-src binary-bootstrap
|
|
print XBPS_ALLOW_RESTRICTED=yes >> etc/conf
|
|
fi
|
|
|
|
# Crear lista de actualizaciones disponibles
|
|
:> "${tmp_dir}"/releases
|
|
cd "$HOME"/void-packages || exit
|
|
|
|
for package in $(xpkg -m); do
|
|
./xbps-src update-check "$package" | tail -n 1 | tee -a "${tmp_dir}"/releases > /dev/null 2>&1
|
|
done
|
|
|
|
uniq "${tmp_dir}"/releases > "${tmp_dir}"/upstream_releases
|
|
|
|
|
|
updates="$(countl ${tmp_dir}/upstream_releases)"
|
|
releases="$(awk '{printf "%-25s %s\n", $1, $3}' ${tmp_dir}/upstream_releases)"
|
|
|
|
if [[ -n $updates ]]; then
|
|
print "$releases"
|
|
printf '%s\n' "ACTUALIZACIONES EN UPSTREAM: $updates" "$releases" | msg &
|
|
rm -rf ${tmp_dir}
|
|
exit 0
|
|
else
|
|
rm -rf ${tmp_dir}
|
|
fi
|
|
|