#!/bin/bash
# TeachSeek 首次安装脚本（deploy2）
# 用法: tar -xzf deploy2.tar.gz && cd deploy2 && bash install.sh

set -euo pipefail

APP_DIR="/opt/teachseek2"
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PORT=3000

echo "[$(date '+%H:%M:%S')] 开始安装 TeachSeek (deploy2) 到 ${APP_DIR}..."

mkdir -p "$APP_DIR"

cp -r "${SCRIPT_DIR}/teachseek" "$APP_DIR/"
cp -r "${SCRIPT_DIR}/_internal" "$APP_DIR/"
cp -r "${SCRIPT_DIR}/conf" "$APP_DIR/"
cp "${SCRIPT_DIR}/VERSION" "$APP_DIR/"
cp "${SCRIPT_DIR}/.env" "$APP_DIR/"
cp "${SCRIPT_DIR}/update.sh" "$APP_DIR/"
chmod +x "$APP_DIR/teachseek" "$APP_DIR/update.sh"

# 复制 dmPython
VENV_DM="/www/git/teachSeek2/v8.0.3/.venv/lib/python3.13/site-packages/dmPython"
if [ -d "$VENV_DM" ]; then
    echo "复制 dmPython 驱动..."
    mkdir -p "${APP_DIR}/_internal/dmPython"
    cp -f "${VENV_DM}/"*.so "${APP_DIR}/_internal/dmPython/" 2>/dev/null || true
    cp -f "${VENV_DM}/"*.py "${APP_DIR}/_internal/dmPython/" 2>/dev/null || true
    cp -f "${VENV_DM}/__init__.py" "${APP_DIR}/_internal/dmPython/" 2>/dev/null || true
else
    echo "WARNING: dmPython 未找到 (${VENV_DM})"
fi

# 启动
cd "$APP_DIR"
nohup ./teachseek --host 0.0.0.0 --port "$PORT" > /tmp/teachseek2.log 2>&1 &
PID=$!
echo "$PID" > /tmp/teachseek2.pid
sleep 3

RESP=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:${PORT}/api/health 2>/dev/null || echo "000")
if [ "$RESP" = "401" ] || [ "$RESP" = "200" ]; then
    echo "安装成功！PID: $PID, HTTP $RESP"
    echo "后端访问: http://10.55.138.114:${PORT}/"
    echo "Nginx访问: http://10.55.138.114:3005/"
else
    echo "WARNING: 健康检查未通过 (HTTP $RESP)"
    tail -20 /tmp/teachseek2.log
fi

echo "安装完成。"
echo "后续更新: bash ${APP_DIR}/update.sh"
echo "手动停止: kill \$(cat /tmp/teachseek2.pid)"
echo "手动启动: cd ${APP_DIR} && nohup ./teachseek --port ${PORT} > /tmp/teachseek2.log 2>&1 &"
