#!/usr/bin/env bash
# Actualiza UghPass en el servidor. Uso: bash scripts/actualizar.sh [archivo.zip]
set -euo pipefail
cd "$(dirname "$0")/.."
[ -f .env ] && { set -a; . ./.env; set +a; }
node -e 'if (+process.versions.node.split(".")[0] < 22) { console.error("Hace falta Node 22: nvm install 22 && nvm alias default 22"); process.exit(1) }'
if [ "${1:-}" != "" ]; then
  # Borra el código viejo (no tu .env ni node_modules) para que no queden archivos sueltos
  rm -rf src drizzle public
  unzip -oq "$1"
fi
npm ci --no-audit --no-fund
npm run db:migrate
npm run build

# Si todavía corre la versión vieja (npm start en modo fork), se reemplaza una sola vez por el ecosystem.
if pm2 jlist 2>/dev/null | grep -q '"name":"ughpass"' && ! pm2 jlist | grep -q 'standalone/server.js'; then
  pm2 delete ughpass ughpass-worker >/dev/null 2>&1 || true
fi
if pm2 jlist 2>/dev/null | grep -q 'standalone/server.js'; then
  pm2 reload ecosystem.config.cjs --update-env   # sin corte: reinicia de a una instancia
else
  pm2 start ecosystem.config.cjs
fi
pm2 save
sleep 4; curl -s -o /dev/null -w "Sitio: HTTP %{http_code}\n" http://127.0.0.1:3000/
echo "Estado completo: https://TU-DOMINIO/admin/estado"
