#!/bin/bash
# TaxBaik Nginx 설정 긴급 롤백 스크립트
# 실행: sudo ./rollback-nginx.sh

set -e

echo "🔙 TaxBaik Nginx 설정 긴급 롤백"
echo "=============================="
echo ""

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

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

# 1. 백업 파일 찾기
echo "🔍 최근 백업 파일 찾기..."
LATEST_BACKUP=$(ls -t ${NGINX_FILE}.backup* 2>/dev/null | head -1)

if [ -z "$LATEST_BACKUP" ]; then
    echo -e "${RED}❌ 백업 파일을 찾을 수 없습니다${NC}"
    echo ""
    echo "현재 디렉토리의 백업 파일:"
    ls -la /etc/nginx/sites-available/taxbaik-domains.conf* 2>/dev/null || echo "없음"
    exit 1
fi

echo -e "${GREEN}✅ 백업 파일 발견: $LATEST_BACKUP${NC}"
echo ""

# 2. 현재 설정 확인
echo "📋 현재 (오류) 설정 확인..."
echo -e "${BLUE}"
head -35 "$NGINX_FILE" | grep -A 10 "location" || true
echo -e "${NC}"
echo ""

# 3. 롤백
echo "⏮️  롤백 중..."
cp "$LATEST_BACKUP" "$NGINX_FILE"
echo -e "${GREEN}✅ 롤백 완료${NC}"
echo ""

# 4. 문법 검증
echo "🔍 Nginx 문법 검증..."
if nginx -t 2>&1 | grep -q "successful"; then
    echo -e "${GREEN}✅ 문법 검증 성공${NC}"
else
    echo -e "${RED}❌ 문법 오류${NC}"
    nginx -t
    exit 1
fi
echo ""

# 5. Nginx 재시작
echo "🔄 Nginx 재시작..."
systemctl restart nginx
echo -e "${GREEN}✅ Nginx 재시작 성공${NC}"
echo ""

# 6. 상태 확인
echo "🧪 최종 상태 확인..."
if systemctl is-active --quiet nginx; then
    echo -e "${GREEN}✅ Nginx 정상 작동${NC}"
else
    echo -e "${RED}❌ Nginx 비정상${NC}"
    systemctl status nginx
    exit 1
fi
echo ""

echo "✅ 롤백 완료!"
echo ""
echo "📝 복구된 설정:"
grep -A 5 "location /taxbaik" "$NGINX_FILE" | head -8
