

Copie y pegue el siguiente código en un fichero de texto y guárdelo con el nombre de archupdate (en minúsculas).
#!/bin/bash USUARIO=`whoami` dependencias=(xdotool zenity screenfetch) for item in ${dependencias[*]} do if ! (pacman -Q $item >/dev/null); then lista=$lista" "$item; fi done if [ -n "$lista" ]; then echo $USUARIO | sudo -S pacman -S $lista --noconfirm; fi # Información del sistema screenfetch echo "" # Comprobamos conexión cada 10 segundos. x=0 until ping -c1 google.com &>/dev/null do x=$(( $x + 1 )) if [ $x = 5 ]; then exit # Al 5º intento salimos else echo "No hay conexión. Reintentando..." sleep 5 fi done # Corregimos el fallo de /var/lib/pacman/db.lck if [ -f "/var/lib/pacman/db.lck" ]; then echo $USUARIO | sudo -S rm /var/lib/pacman/db.lck; fi # Sincronizamos las bases de datos de los paquetes echo $USUARIO | sudo -S pacman -Sy # Si no hay actualizaciones... NUMERO=$(pacman -Qqu | wc -l) if [ $NUMERO = "0" ]; then #sudo pacman -Rs $(pacman -Qtdq) --noconfirm # Eliminar paquetes huerfanos RED="\033[0;31m" ENDCOLOR="\033[0m" echo -e $RED"Sistema actualizado."$ENDCOLOR sleep 5 exit 0 else # Ocultar terminal xdotool windowunmap $(xdotool getactivewindow) clear # Mostramos las actualizaciones pendientes. UPDATELIST=`zenity --list --checklist \ --height=280 \ --width=300 \ --title="Hay "$NUMERO" actualizaciones" \ --column="Sel." \ --column="Paquete" \ --column="Version" \ $(pacman -Qu | awk -F ' ' '{print selected " " $1 " " $2}' selected="TRUE")`; clear # Actualizamos los paquetes seleccionados if [ -n "$UPDATELIST" ]; then echo $USUARIO | sudo -S \ ( IFS="|" for word in $UPDATELIST; do echo "#Actualizando: $word" ; sudo pacman -S $word --noconfirm BARRA=$((BARRA+(100/NUMERO))) echo $BARRA ; done; ) | \ zenity --progress \ --width=400 \ --height=80 \ --no-cancel \ --title="Instalando actualizaciones" \ --percentage=0 \ --auto-close fi fiDamos permisos de ejecución con:
chmod +x /ruta del archivo/archupdate
0 comentarios:
Publicar un comentario