#!/bin/bash
# ============================================================
#  西行云途 一键部署脚本
#  将本地 yuntu 项目全部文件部署到远程服务器并对外可访问
#  用法:
#    ./deploy.sh                  # 使用默认服务器(173.254.205.132)和密码
#    ./deploy.sh <IP> <密码>       # 自定义服务器IP和SSH密码
#    SERVER_PASS=xxx ./deploy.sh   # 通过环境变量传入密码
# ============================================================
set -e

SERVER_IP="${1:-173.254.205.132}"
SERVER_USER="root"
SERVER_PASS="${2:-${SERVER_PASS:-E0t8rkCnGt2E7i85MS}}"
REMOTE_DIR="/opt/oio-project/frontend/yuntu"
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
ARCHIVE="/tmp/yuntu_deploy_$(date +%s).tar.gz"

echo "=============================================="
echo "  西行云途 一键部署"
echo "  服务器: ${SERVER_USER}@${SERVER_IP}"
echo "  远程目录: ${REMOTE_DIR}"
echo "=============================================="

# 1. 检查 sshpass
if ! command -v sshpass >/dev/null 2>&1; then
  echo "[!] 未检测到 sshpass，正在尝试安装..."
  if command -v apt-get >/dev/null 2>&1; then
    sudo apt-get update -qq && sudo apt-get install -y sshpass
  elif command -v yum >/dev/null 2>&1; then
    sudo yum install -y sshpass
  else
    echo "[✗] 无法自动安装 sshpass，请手动安装后重试"
    exit 1
  fi
fi

# 2. 打包本地项目（排除 .git 和临时文件）
echo "[1/4] 打包项目文件..."
cd "$SCRIPT_DIR"
tar czf "$ARCHIVE" --exclude='.git' --exclude='__pycache__' --exclude='*.pyc' .
echo "      打包完成: $ARCHIVE ($(du -h "$ARCHIVE" | cut -f1))"

# 3. 上传到服务器
echo "[2/4] 上传到服务器 ${SERVER_IP}..."
sshpass -p "$SERVER_PASS" scp -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "$ARCHIVE" "${SERVER_USER}@${SERVER_IP}:/tmp/"

# 4. 远程解压部署
echo "[3/4] 解压部署到 ${REMOTE_DIR}..."
sshpass -p "$SERVER_PASS" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "${SERVER_USER}@${SERVER_IP}" "
  mkdir -p ${REMOTE_DIR}
  rm -rf ${REMOTE_DIR}/* 2>/dev/null || true
  tar xzf ${ARCHIVE} -C ${REMOTE_DIR}/
  chmod -R 755 ${REMOTE_DIR}
  rm -f ${ARCHIVE}
  echo '      远程解压完成'
"

# 5. 验证
echo "[4/4] 验证部署..."
sleep 1
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" "https://sa.oio.net.cn/yuntu/" || echo "000")
echo "      访问 https://sa.oio.net.cn/yuntu/ → HTTP ${HTTP_CODE}"

echo "=============================================="
echo "  ✅ 部署完成！"
echo "  门户首页: https://sa.oio.net.cn/yuntu/"
echo "  项目总报告: https://sa.oio.net.cn/yuntu/项目总报告.md"
echo "=============================================="
