#!/usr/bin/env bash
# 知命阁（zhimingge）Ubuntu 服务器更新脚本
# 用法：cd /opt/zhimingge && bash scripts/deploy.sh

set -euo pipefail

APP_DIR="/opt/zhimingge"
APP_NAME="zhimingge"
APP_PORT="${PORT:-3130}"

cd "$APP_DIR"

echo "==> 拉取最新代码..."
git pull origin main

echo "==> 安装依赖..."
npm ci || npm install

echo "==> 停止 PM2（避免无构建产物时反复重启）..."
pm2 stop "$APP_NAME" 2>/dev/null || true

echo "==> 生产构建..."
npm run build

if [[ ! -f .next/BUILD_ID ]]; then
  echo "ERROR: 构建失败，未找到 .next/BUILD_ID，请先解决 npm run build 报错后再启动。"
  exit 1
fi

echo "==> 确保日志目录存在..."
mkdir -p logs

echo "==> 启动 PM2..."
if pm2 describe "$APP_NAME" > /dev/null 2>&1; then
  pm2 restart "$APP_NAME"
else
  pm2 start ecosystem.config.cjs
fi

pm2 save

echo "==> 部署完成，验证 http://127.0.0.1:${APP_PORT} ..."
pm2 status "$APP_NAME"
curl -s -o /dev/null -w "HTTP %{http_code}\n" "http://127.0.0.1:${APP_PORT}" || true
