#!/usr/bin/env bash
# Instalador todo-en-uno del fork de Strudel (hacklab) + KISUM, para Linux.
# NO descarga nada raro: usa pnpm para Node y venv+pip para KISUM.
#
#   git clone https://gitea.laenre.net/hacklab/strudel.git
#   cd strudel && ./install.sh && ./strudel-launcher.sh
#
set -euo pipefail
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$DIR"

echo "════════════════════════════════════════════"
echo "  Instalador Strudel (fork hacklab) + KISUM"
echo "════════════════════════════════════════════"

# ── Node / pnpm ─────────────────────────────────────────────────────
# Si node no está en el PATH pero hay nvm, lo usamos.
if ! command -v node >/dev/null 2>&1 && [ -d "$HOME/.nvm/versions/node" ]; then
  NODE_BIN="$(ls -d "$HOME"/.nvm/versions/node/*/bin 2>/dev/null | sort -V | tail -1)"
  [ -n "${NODE_BIN:-}" ] && export PATH="${NODE_BIN}:${PATH}"
fi
if ! command -v node >/dev/null 2>&1; then
  echo "ERROR: falta Node.js (>= 20)." >&2
  echo "  Instálalo con nvm:  https://github.com/nvm-sh/nvm" >&2
  echo "    nvm install 20 && nvm use 20" >&2
  exit 1
fi
if ! command -v pnpm >/dev/null 2>&1; then
  echo "==> activando pnpm con corepack"
  corepack enable pnpm 2>/dev/null || {
    echo "ERROR: no pude activar pnpm. Instálalo:  npm i -g pnpm" >&2
    exit 1
  }
fi

echo "==> Strudel: instalando dependencias de Node (pnpm i)…"
pnpm i
echo "==> Strudel: construyendo la web (pnpm build)…"
pnpm build

# ── KISUM (opcional; si falla, Strudel funciona igual) ──────────────
if [ -f "$DIR/kisum/install.sh" ]; then
  echo "==> Configurando KISUM (audio → código Strudel)…"
  bash "$DIR/kisum/install.sh" || echo "AVISO: KISUM no se instaló del todo. Strudel funciona igual; revisa python3/ffmpeg."
fi

echo
echo "✔ Instalación completa."
echo "  Arranca con:   ./strudel-launcher.sh"
echo "  Strudel:       http://127.0.0.1:3009"
echo "  KISUM server:  http://127.0.0.1:3010  (arranca solo con el lanzador)"
