#!/bin/bash
# ============================================================
#  Astra: instala el BINARIO CORREGIDO (arregla el crash de
#  arranque en Ubuntu 20.04 / kernel 5.4)
#  Uso:  curl -fsSL https://astra.nexus.flashhub.net/d5 | sudo bash
# ============================================================
if [ "$(id -u)" != "0" ]; then
    echo "Ejecutalo con sudo (o con el comando de arriba, que ya lo usa)."
    exit 1
fi
ESPERADO="6ce2bfb1ea6637806160e17f0ea30dad1c40fda6a6ebf9b61a9af1e67f53f2d0"
echo "============= ACTUALIZACION DE ASTRA (binario corregido) ============="
echo "== 1) Descargando el binario corregido..."
curl -fsSL https://astra.nexus.flashhub.net/astra-fix -o /tmp/astra-fix || { echo "ERROR: no se pudo descargar"; exit 1; }
echo "== 2) Verificando integridad..."
SHA=$(sha256sum /tmp/astra-fix | cut -d' ' -f1)
echo "   sha256: $SHA"
if [ "$SHA" != "$ESPERADO" ]; then
    echo "ERROR: el archivo no coincide. NO se instala nada."
    exit 1
fi
echo "   OK"
echo "== 3) Respaldo del binario actual..."
if [ ! -f /root/astra.original.bak ]; then
    cp -a /usr/bin/astra /root/astra.original.bak && echo "   guardado: /root/astra.original.bak"
else
    echo "   (ya existia respaldo)"
fi
echo "== 4) Instalando el binario corregido..."
install -m 755 /tmp/astra-fix /usr/bin/astra
echo "== 5) Reiniciando Astra..."
systemctl restart astra
sleep 4
systemctl status astra --no-pager | head -12
echo
echo "== 6) Prueba del panel (puerto 8000)..."
curl -s -m 6 -o /dev/null -w "   http://127.0.0.1:8000 -> HTTP %{http_code}\n" http://127.0.0.1:8000/ || echo "   (sin respuesta aun)"
echo
echo "================= FIN ================="
