#!/bin/bash

# 에이전트 설치 스크립트 (각 모니터링할 서버용)

set -e

echo "=========================================="
echo "에이전트 설치 스크립트"
echo "=========================================="
echo ""

# 색상 정의
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

# 설치 디렉토리
INSTALL_DIR="${1:-/opt/server-monitoring-agent}"

# 백엔드 URL (필수)
BACKEND_URL="${2:-ws://localhost:3000/ws/agent}"

# 에이전트 ID (필수)
AGENT_ID="${3}"

if [ -z "$AGENT_ID" ]; then
    echo -e "${RED}에이전트 ID가 필요합니다.${NC}"
    echo ""
    echo "사용법:"
    echo "  bash install-agent.sh [설치경로] [백엔드URL] [에이전트ID]"
    echo ""
    echo "예시:"
    echo "  bash install-agent.sh /opt/agent ws://192.168.1.100:3000/ws/agent server-01"
    exit 1
fi

echo -e "${GREEN}설치 디렉토리: $INSTALL_DIR${NC}"
echo -e "${GREEN}백엔드 URL: $BACKEND_URL${NC}"
echo -e "${GREEN}에이전트 ID: $AGENT_ID${NC}"
echo ""

# 디렉토리 생성
mkdir -p "$INSTALL_DIR"
cd "$INSTALL_DIR"

# 패키지 다운로드
echo -e "${YELLOW}패키지 다운로드 중...${NC}"
PACKAGE_URL="${PACKAGE_URL:-https://download.gosky.kr/package.tar.gz}"

if [ -f "package.tar.gz" ]; then
    echo "로컬 패키지 파일 발견: package.tar.gz"
    tar -xzf package.tar.gz
else
    echo "패키지 다운로드: $PACKAGE_URL"
    curl -L "$PACKAGE_URL" -o package.tar.gz
    if [ ! -f "package.tar.gz" ] || [ ! -s "package.tar.gz" ]; then
        echo -e "${RED}패키지 다운로드에 실패했습니다.${NC}"
        exit 1
    fi
    tar -xzf package.tar.gz
    rm package.tar.gz
fi

echo -e "${GREEN}패키지 압축 해제 완료${NC}"
echo ""

# Python 버전 확인
echo -e "${YELLOW}Python 버전 확인 중...${NC}"
if ! command -v python3 &> /dev/null; then
    echo -e "${RED}Python 3가 설치되어 있지 않습니다.${NC}"
    exit 1
fi

echo ""
echo -e "${GREEN}환경 확인 완료${NC}"
echo ""

# 에이전트 설치
echo -e "${YELLOW}에이전트 설치 중...${NC}"
cd "$INSTALL_DIR/agent"
if [ ! -d "venv" ]; then
    python3 -m venv venv
fi
source venv/bin/activate
pip install -q -r requirements.txt
echo -e "${GREEN}에이전트 설치 완료${NC}"
echo ""

# 환경 변수 파일 생성
echo -e "${YELLOW}환경 변수 파일 생성 중...${NC}"

# 에이전트 .env
cat > "$INSTALL_DIR/agent/.env" << EOF
BACKEND_WS_URL=$BACKEND_URL
AGENT_ID=$AGENT_ID
EOF
echo -e "${GREEN}에이전트 .env 파일 생성 완료${NC}"
echo ""

echo -e "${GREEN}=========================================="
echo "에이전트 설치 완료!"
echo "==========================================${NC}"
echo ""
echo "에이전트 실행:"
echo "   cd $INSTALL_DIR/agent"
echo "   source venv/bin/activate"
echo "   python agent.py"
echo ""
echo "또는 systemd 서비스로 등록하여 자동 실행 가능합니다."
echo ""

