#!/bin/bash
# pre-commit hook 설치 스크립트
# Usage: bash scripts/pre-commit-install.sh

set -e

WORKSPACE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$WORKSPACE_DIR"

echo "[pre-commit-install] 작업 디렉토리: $WORKSPACE_DIR"

# pre-commit 설치 여부 확인
if ! command -v pre-commit &> /dev/null; then
    echo "[pre-commit-install] pre-commit 미설치. 설치 중..."
    pip install pre-commit --break-system-packages
fi

# git repo 여부 확인
if [ ! -d ".git" ]; then
    echo "[pre-commit-install] WARNING: .git 디렉토리가 없습니다."
    echo "[pre-commit-install] pre-commit hook은 git repo에서만 동작합니다."
    echo "[pre-commit-install] 수동 실행: pre-commit run --all-files"
    exit 0
fi

# pre-commit hook 설치
echo "[pre-commit-install] pre-commit hook 설치 중..."
pre-commit install

echo "[pre-commit-install] 완료! 이제 git commit 시 자동으로 black, isort, mypy 검사가 실행됩니다."
echo "[pre-commit-install] 수동 실행: pre-commit run --all-files"

# ── memory check 호출 추가 (task-2419, idempotent) ──
GIT_HOOK="$WORKSPACE_DIR/.git/hooks/pre-commit"
if [ -f "$GIT_HOOK" ]; then
    if ! grep -q "pre-commit-memory-check.py" "$GIT_HOOK"; then
        cat >> "$GIT_HOOK" << 'EOF'

# ── memory check (task-2419, idempotent) ──
if [[ -x "$(git rev-parse --show-toplevel)/scripts/hooks/pre-commit-memory-check.py" ]]; then
    python3 "$(git rev-parse --show-toplevel)/scripts/hooks/pre-commit-memory-check.py" || exit 1
fi
EOF
        echo "[pre-commit-install] memory check 호출 추가됨"
    else
        echo "[pre-commit-install] memory check 이미 등록됨 (스킵)"
    fi
fi
