#!/bin/bash
# SuperClaude Framework 설치 스크립트
# Nexol MCP Service - https://mcp.nexol.co.kr
# GitHub: https://github.com/SuperClaude-Org/SuperClaude_Framework
# Version: 4.2.0+

set -e

echo "========================================"
echo "  SuperClaude Framework 설치"
echo "  Version: 4.2.0"
echo "========================================"
echo ""

# OS 감지
OS="unknown"
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
    OS="linux"
elif [[ "$OSTYPE" == "darwin"* ]]; then
    OS="macos"
elif [[ "$OSTYPE" == "msys" ]] || [[ "$OSTYPE" == "cygwin" ]] || [[ "$OSTYPE" == "win32" ]]; then
    OS="windows"
fi

echo "[1/5] 시스템 확인: $OS"

# Python 확인 (>=3.10 필요)
echo ""
echo "[2/5] Python 확인..."
if ! command -v python3 &> /dev/null; then
    echo "❌ Python3가 설치되어 있지 않습니다."
    echo ""
    if [[ "$OS" == "macos" ]]; then
        echo "설치 방법: brew install python@3.12"
    elif [[ "$OS" == "linux" ]]; then
        echo "설치 방법: sudo apt install python3 python3-pip"
    else
        echo "설치 방법: https://www.python.org/downloads/"
    fi
    exit 1
fi

PYTHON_VERSION=$(python3 -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')
echo "✅ Python: $PYTHON_VERSION"

# 버전 체크 (3.10 이상)
MAJOR=$(echo $PYTHON_VERSION | cut -d. -f1)
MINOR=$(echo $PYTHON_VERSION | cut -d. -f2)
if [[ $MAJOR -lt 3 ]] || [[ $MAJOR -eq 3 && $MINOR -lt 10 ]]; then
    echo "❌ Python 3.10 이상이 필요합니다. (현재: $PYTHON_VERSION)"
    exit 1
fi

# pipx 확인 및 설치
echo ""
echo "[3/5] pipx 확인..."
if ! command -v pipx &> /dev/null; then
    echo "pipx 설치 중..."
    python3 -m pip install --user pipx
    python3 -m pipx ensurepath

    # PATH 새로고침
    if [[ "$OS" == "macos" ]] || [[ "$OS" == "linux" ]]; then
        export PATH="$HOME/.local/bin:$PATH"
    fi
fi
echo "✅ pipx 준비 완료"

# SuperClaude 설치
echo ""
echo "[4/5] SuperClaude 설치..."
if command -v superclaude &> /dev/null; then
    CURRENT_VERSION=$(superclaude version 2>/dev/null || echo "unknown")
    echo "기존 설치 감지: $CURRENT_VERSION"
    echo "업그레이드 중..."
    pipx upgrade superclaude || pipx install superclaude --force
else
    pipx install superclaude
fi

# Claude Code에 스킬 설치
echo ""
echo "[5/5] Claude Code에 스킬 설치..."
superclaude install

# 설치 검증
echo ""
echo "설치 검증 중..."
superclaude doctor

echo ""
echo "========================================"
echo "  설치 완료!"
echo "========================================"
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "  주요 기능"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
echo "  📦 30개 슬래시 명령어"
echo "  🤖 16개 전문 AI 에이전트"
echo "  🎯 7개 동작 모드"
echo "  🔌 8개 MCP 서버 통합"
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "  사용법"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
echo "  claude              # Claude Code 시작"
echo "  /sc                 # 전체 명령어 목록"
echo "  /sc:help            # 도움말"
echo "  /sc:research        # 딥 웹 리서치"
echo "  /sc:brainstorm      # 브레인스토밍"
echo "  /sc:implement       # 코드 구현"
echo "  /sc:analyze         # 코드 분석"
echo "  /sc:design          # 설계"
echo "  /sc:test            # 테스트"
echo "  /sc:pm              # 프로젝트 관리"
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "  MCP 서버 설치 (선택)"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
echo "  superclaude mcp --list              # 사용 가능한 서버 목록"
echo "  superclaude mcp                     # 대화형 설치"
echo "  superclaude mcp --servers tavily    # 특정 서버 설치"
echo ""
echo "  ※ Nexol MCP 사용 시 별도 설치 불필요"
echo "    이미 서버에서 호스팅 중입니다."
echo ""
echo "문서: https://mcp.nexol.co.kr"
echo "GitHub: https://github.com/SuperClaude-Org/SuperClaude_Framework"
echo ""
