kxpkglocal.ksh: update to 1.0

This commit is contained in:
Tuxliban Torvalds 2023-05-25 03:13:12 -06:00
parent 96e50d8d5c
commit beaf9f4530
1 changed files with 21 additions and 21 deletions

View File

@ -4,18 +4,19 @@
# Dependencias: xbps-src, xtools, dzen2
#
# Autor: Tuxliban Torvalds <o-sanchez@linuxmail.org>
# v1.0
set -u
TMP_DIR=$(mktemp -d /tmp/xpkglocal.XXXXX)
SUDO=$(which_sudo)
tmp_dir=$(mktemp -d /tmp/xpkglocal.XXXXX)
admin=$(which_sudo)
function do_install {
if [[ $SUDO == su ]]; then
if [[ $admin == su ]]; then
su root -c 'xbps-install "$@"' -- sh "$@"
else
"$SUDO" xbps-install "$@"
$admin xbps-install "$@"
fi
}
@ -26,13 +27,12 @@ function msg {
# Verificar que las dependencias estén instaladas
if ! command -v xpkg >/dev/null; then
printf '%s\n' "Instalando paquete xtools"
do_install -Sy xtools
elif ! command -v dzen2 > /dev/null; then
printf '%s\n' "Instalando paquete dzen2"
do_install -Sy dzen2
fi
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..."
@ -43,25 +43,25 @@ if [ ! -f "$HOME"/void-packages/xbps-src ]; then
fi
# Crear lista de actualizaciones disponibles
:> "${TMP_DIR}"/releases
:> "${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
./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
uniq "${tmp_dir}"/releases > "${tmp_dir}"/upstream_releases
UPDATES="$(count_lines ${TMP_DIR}/upstream_releases)"
RELEASES="$(awk '{printf "%-25s %s\n", $1, $3}' ${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 -r ${TMP_DIR}
if [[ -n $updates ]]; then
print "$releases"
printf '%s\n' "ACTUALIZACIONES EN UPSTREAM: $updates" "$releases" | msg &
rm -rf ${tmp_dir}
exit 0
else
rm -r ${TMP_DIR}
rm -rf ${tmp_dir}
fi