#!/bin/bash
# TaxBaik Nginx 설정 최종 수정 (중복 location / 제거)

set -e

NGINX_FILE="/etc/nginx/sites-available/taxbaik-domains.conf"
BACKUP_FILE="${NGINX_FILE}.backup.$(date +%Y%m%d_%H%M%S)"

echo "🔧 TaxBaik Nginx 설정 최종 수정"
echo "=================================="
echo ""

# 1. 백업 생성
echo "1️⃣  백업 생성..."
sudo cp "$NGINX_FILE" "$BACKUP_FILE"
echo "   ✅ 백업: $BACKUP_FILE"
echo ""

# 2. Python으로 설정 수정
echo "2️⃣  설정 수정 중..."
sudo python3 << 'PYTHON_SCRIPT'
import re

nginx_file = "/etc/nginx/sites-available/taxbaik-domains.conf"

with open(nginx_file, 'r') as f:
    content = f.read()

# 첫 번째 location / 블록 제거 (taxbaik 프리픽스 있는 것)
# 이것은 이제 필요 없음 (Option B: /taxbaik/ 프리픽스 제거)
pattern = r'# /admin 하위 요청을.*?location / \{[^}]*proxy_pass http://127\.0\.0\.1:5001/taxbaik/;[^}]*\}'
content = re.sub(pattern, '', content, flags=re.DOTALL)

# 정리: 공백 정리
content = re.sub(r'\n\s*\n\s*\n', '\n\n', content)

with open(nginx_file, 'w') as f:
    f.write(content)

print("✅ Python으로 수정 완료")
PYTHON_SCRIPT

echo ""

# 3. 수정된 설정 확인
echo "3️⃣  수정된 설정 확인..."
echo "   ==="
sudo grep -A 8 "location /" "$NGINX_FILE" | head -15
echo "   ==="
echo ""

# 4. 문법 검증
echo "4️⃣  Nginx 문법 검증..."
if sudo nginx -t 2>&1 | grep -q "successful"; then
    echo "   ✅ 문법 검증 성공"
else
    echo "   ❌ 문법 오류 - 롤백 중..."
    sudo cp "$BACKUP_FILE" "$NGINX_FILE"
    echo "   ✅ 롤백 완료"
    exit 1
fi
echo ""

# 5. Nginx 재로드
echo "5️⃣  Nginx 재로드..."
sudo systemctl reload nginx
echo "   ✅ 재로드 완료"
echo ""

# 6. 최종 확인
echo "6️⃣  최종 확인..."
if curl -sf http://127.0.0.1:5001/ > /dev/null; then
    echo "   ✅ 로컬호스트 응답 정상"
else
    echo "   ⚠️  로컬호스트 응답 확인 필요"
fi
echo ""

echo "✅ 설정 수정 완료!"
echo ""
echo "📝 변경 사항:"
echo "   - 첫 번째 location / 블록 제거 (중복)"
echo "   - 남은 location / 블록이 / 경로 처리"
echo ""
echo "🔙 백업 파일: $BACKUP_FILE"
