#!/usr/bin/env bash
# 安装 pre-commit：提交前执行 opsx:gate（见 AGENTS.md）
set -euo pipefail

ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
HOOK_PATH="$(git -C "$ROOT_DIR" rev-parse --git-dir 2>/dev/null)/hooks/pre-commit"

if [[ ! -d "$(dirname "$HOOK_PATH")" ]]; then
  echo "[opsx:install-hooks] ERROR: 不在 git 仓库内" >&2
  exit 1
fi

cat >"$HOOK_PATH" <<'HOOK'
#!/usr/bin/env bash
set -euo pipefail
ROOT="$(git rev-parse --show-toplevel)"
cd "$ROOT"
if command -v pnpm >/dev/null 2>&1; then
  pnpm run opsx:gate
else
  bash scripts/assert-active-openspec-change.sh
fi
HOOK

chmod +x "$HOOK_PATH"
echo "[opsx:install-hooks] 已安装 pre-commit -> $HOOK_PATH"
echo "[opsx:install-hooks] 提交含 src/ 或 e2e/ 改动时将校验 OpenSpec change 绑定"
