#!/bin/bash
# Разовая подготовка стенда. Идемпотентно — можно гонять повторно.
set -uo pipefail

SKILL="$(cd "$(dirname "$0")/.." && pwd)"
BSL_DIR="$HOME/.local/share/bsl-language-server"
BSL_JAR="$BSL_DIR/bsl-language-server.jar"
BSL_VER="${BSL_VER:-1.0.6}"
JAVA21="${BSL_LS_JAVA:-/opt/homebrew/opt/openjdk@21/bin/java}"
AGENT_HOME="${ONEC_AGENT_HOME:-$HOME/Services/onec-build-agent}"
SRC_IB="${ONEC_TB_SRC_IB:-$AGENT_HOME/ib_u1005954706}"
STAND_IB="${ONEC_TB_IB:-$AGENT_HOME/ib_stand}"
PREVIEW="${ONEC_TB_PREVIEW:-$HOME/Разработки/.tb_preview}"

echo "== 1. Java 21 (BSL LS 1.0.6 собран под class file 65) =="
if [ -x "$JAVA21" ]; then
	echo "   ок: $("$JAVA21" -version 2>&1 | head -1)"
else
	echo "   НЕТ. Поставь: brew install openjdk@21"
	exit 1
fi

echo "== 2. BSL Language Server =="
if [ -s "$BSL_JAR" ]; then
	echo "   ок: $BSL_JAR ($(du -h "$BSL_JAR" | cut -f1))"
else
	mkdir -p "$BSL_DIR"
	# из РФ напрямую с github душится до ~10 КБ/с, поэтому через зеркало
	URL="https://gh-proxy.com/https://github.com/1c-syntax/bsl-language-server/releases/download/v$BSL_VER/bsl-language-server-$BSL_VER-exec.jar"
	echo "   качаю $BSL_VER…"
	curl -sL -m 1800 -o "$BSL_JAR" "$URL" || { echo "   не скачалось"; exit 1; }
	echo "   ок: $(du -h "$BSL_JAR" | cut -f1)"
fi

echo "== 3. Стенд-база (копия базы с конфигурацией) =="
if [ -f "$STAND_IB/1Cv8.1CD" ]; then
	echo "   ок: $STAND_IB ($(du -sh "$STAND_IB" | cut -f1))"
elif [ -f "$SRC_IB/1Cv8.1CD" ]; then
	echo "   копирую $SRC_IB → $STAND_IB (Конфигуратор не параллелится на одной базе)"
	cp -R "$SRC_IB" "$STAND_IB" && rm -f "$STAND_IB/.ready"
	echo "   ок"
else
	echo "   НЕТ базы-источника $SRC_IB."
	echo "   Сначала загрузи конфигурацию через onec-build-agent: POST /dump-config?uid=…"
	exit 1
fi

echo "== 4. Индекс метаданных конфигурации =="
/usr/bin/python3 "$SKILL/tools/meta_check.py" index || exit 1

echo "== 5. Каталог карт форм =="
mkdir -p "$PREVIEW"
echo "   ок: $PREVIEW"
if ! grep -q '1c-form-maps' "$HOME/Разработки/.claude/launch.json" 2>/dev/null; then
	echo "   ВНИМАНИЕ: в ~/Разработки/.claude/launch.json нет записи «1c-form-maps»."
	echo "   Без неё превью-панель не отдаст DOM (file:// показывает статичный снимок)."
fi

echo
echo "готово. проверка: tests/run_corpus.py --fast"
