#!/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)"