#!/bin/bash
# =============================================================================
# setup.sh — instalador ONE-SHOT do PPCI Maratona para um PC do laboratório.
#
# Uso (no PC do lab, com internet normal — fora da maratona):
#   curl -fsSL https://maratona.td.utfpr.edu.br/ppci-linux-lite/setup.sh | sudo bash
#
# Deixa o PC pronto num comando: instala QEMU + o lançador como APP clicável
# (ícone "PPCI Maratona" na área de trabalho). No dia: 2 cliques no ícone.
# NÃO contém segredo — os endpoints que o lançador usa são públicos.
# Idempotente: pode rodar de novo sem problema.
# =============================================================================
set -euo pipefail

SERVER="https://maratona.td.utfpr.edu.br"
BUNDLE_URL="$SERVER/ppci-linux-lite/ppci-launcher.tar.gz"

RED='\033[0;31m'; GREEN='\033[0;32m'; BLUE='\033[0;34m'; NC='\033[0m'
log(){ echo -e "${BLUE}[*]${NC} $*"; }
ok(){  echo -e "${GREEN}[+]${NC} $*"; }
err(){ echo -e "${RED}[x]${NC} $*" >&2; }

if [[ $EUID -ne 0 ]]; then
    err "rode como root:"
    err "  curl -fsSL $SERVER/ppci-linux-lite/setup.sh | sudo bash"
    exit 1
fi

command -v curl >/dev/null 2>&1 || { apt-get update -qq && apt-get install -y -qq curl; }

WORK="$(mktemp -d)"
trap 'rm -rf "$WORK"' EXIT
cd "$WORK"

log "baixando o pacote do lançador..."
curl -fsSL "$BUNDLE_URL" -o ppci-launcher.tar.gz
tar xzf ppci-launcher.tar.gz
cd ppci-launcher
ok "pacote extraído"

# Config de produção — sem token (os endpoints do lançador são públicos).
# Só cria se não existir, pra preservar ajustes locais (ex.: PPCI_MAQUINA_NOME).
if [[ ! -f /etc/ppci-launcher.conf ]]; then
    cat > /etc/ppci-launcher.conf <<EOF
# Gerado pelo setup.sh — PPCI Maratona
PPCI_SERVER_URL="$SERVER/ppci-control"
PPCI_DIR="/opt/ppci"
CODIGO_BASE="/PPCI_codigos"
VM_MEM="6G"
VM_DISPLAY="gtk"
# PPCI_MAQUINA_NOME="lab-b203-pc01"   # opcional: nome amigável no painel
EOF
    ok "config criada em /etc/ppci-launcher.conf"
else
    log "/etc/ppci-launcher.conf já existe — preservado"
fi

# Instala deps (QEMU, zenity), scripts, ícone na área de trabalho e grupos.
log "instalando QEMU + app + ícone..."
bash install.sh

# Deixa o reforço kiosk disponível em /opt/ppci (NÃO ativa — opcional p/ prova
# oficial, caso o alt-tab escape no host: sudo /opt/ppci/setup-kiosk.sh).
[[ -f setup-kiosk.sh ]] && install -m 0755 setup-kiosk.sh /opt/ppci/setup-kiosk.sh 2>/dev/null || true

echo
ok "PRONTO — este PC está preparado para a maratona."
log "no dia: 2 cliques no ícone 'PPCI Maratona' na área de trabalho."
log "relogue o usuário 1x agora (pros grupos kvm/ppci valerem)."
