opt/zion-terminal/bin/zion-update (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
#!/usr/bin/env bash
# ZION TERMINAL - Atualizacao segura do sistema
# Cyberdeck criado por Pablo Murad em 2026
export LC_ALL=C
. /opt/zion-terminal/bin/zion-lib.sh 2>/dev/null
LOG=/opt/zion-terminal/logs/update.log
[ "$1" = "--help" ] && { echo "Uso: zion atualizar — atualiza indices, mostra o que sera atualizado, pede confirmacao e aplica (respeitando o hold do kernel). Registra em $LOG."; exit 0; }
printf '%b ZION TERMINAL — Atualizacao%b\n' "$ZP$ZB" "$ZR"; zion_regua 50
echo " Atualizando indices (apt update)..."
sudo apt-get update -qq 2>/dev/null
mapfile -t ups < <(apt list --upgradable 2>/dev/null | grep -v Listing)
n=${#ups[@]}
if [ "$n" -eq 0 ]; then printf ' %bSistema ja atualizado. Nada a fazer.%b\n' "$ZOK" "$ZR"; exit 0; fi
printf ' %b%d pacote(s) a atualizar:%b\n' "$ZWARN" "$n" "$ZR"
printf ' • %s\n' "${ups[@]:0:20}"
[ "$n" -gt 20 ] && echo " ... e mais $((n-20))"
echo " (kernel/BSP em hold NAO serao tocados: $(apt-mark showhold | tr '\n' ' '))"
read -r -p "$(printf '%b Aplicar atualizacoes? [s/N]:%b ' "$ZWARN" "$ZR")" r
[ "$r" = s ] || [ "$r" = S ] || { echo " Cancelado."; exit 0; }
echo " Aplicando..."
sudo DEBIAN_FRONTEND=noninteractive apt-get -y full-upgrade 2>&1 | tee -a "$LOG" | grep -iE "Setting up|Removing|newly" | sed 's/^/ /'
printf '[%s] update aplicado (%d pacotes)\n' "$(date '+%F %T')" "$n" >> "$LOG"
if [ -f /var/run/reboot-required ]; then printf ' %b● Reinicializacao recomendada.%b\n' "$ZWARN" "$ZR"; else printf ' %b● Concluido. Reboot nao necessario.%b\n' "$ZOK" "$ZR"; fi
|