ksh/xpkglocal.ksh: cambio de nombre
This commit is contained in:
parent
b84fd25861
commit
e17725cda2
|
@ -1,67 +0,0 @@
|
|||
#!/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
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
#!/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: dzen2
|
||||
|
||||
set -u
|
||||
|
||||
if [[ ${#} == 0 ]]; then
|
||||
printf '%s\n' "Uso: ${0##*/} <opción>
|
||||
-n Muestra actualizaciones a través de una notificación
|
||||
-t Muestra las actualizaciones en la terminal"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
upstream=$(mktemp "$HOME"/.cache/up.XXXX)
|
||||
list=https://a-hel-fi.m.voidlinux.org/void-updates/void-updates.txt
|
||||
|
||||
function msg {
|
||||
dzen2 -p -fn 'Inconsolata:size=8:style=bold' -ta 5 \
|
||||
-w 260 -x 1100 -y 25 -l 20
|
||||
}
|
||||
|
||||
# Muestra la lista de actualizaciones en un notificación
|
||||
function notification {
|
||||
# Verificar que las dependencias estén instaladas
|
||||
if ! command -v dzen2 >/dev/null 2>&1; then
|
||||
printf '%b' "\033[31;5m[ERROR] 'dzen2' es requerido. Instale el paquete...\033[0m\n"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Descargar lista de actualizaciones disponibles
|
||||
curl -s ${list} > ${upstream}
|
||||
|
||||
# Filtrar actualizaciones en upstream disponibles
|
||||
xpkg -m | sed 's/^/^/; s/$/ /' | grep -w -f - ${upstream} | awk '{print $1" "$2" --> "$4}' \
|
||||
| sort -k4rn | sort -uk1,1 > "$HOME"/.cache/updates.txt
|
||||
|
||||
updates="$(countl $HOME/.cache/updates.txt)"
|
||||
|
||||
if [[ -n $updates ]]; then
|
||||
$HOME/.local/bin/alert 2>/dev/null
|
||||
printf '%s\n' "ACTUALIZACIONES EN UPSTREAM: $updates" "$(< "$HOME"/.cache/updates.txt)" | msg &
|
||||
rm ${upstream}
|
||||
rm "$HOME"/.cache/updates.txt
|
||||
exit 0
|
||||
else
|
||||
rm ${upstream}
|
||||
fi
|
||||
}
|
||||
|
||||
# Muestra la lista de actualizaciones en la terminal
|
||||
function terminal {
|
||||
curl -s ${list} > ${upstream}
|
||||
xpkg | sed 's/^/^/; s/$/ /' | grep -w -f - ${upstream} | awk '{print $1"\t"$2" --> "$4}' \
|
||||
| sort -k4rn | sort -uk1,1
|
||||
rm ${upstream}
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
-n)
|
||||
notification ;;
|
||||
-t)
|
||||
terminal
|
||||
esac
|
Loading…
Reference in New Issue