#!/bin/bash
# server-core 启动脚本（serverrun/，参考 PineSoundServer 工程化）
# 职责：初始化 serverdata 资源目录 → 启动服务
set -euo pipefail

# 项目根（本脚本位于 serverrun/ 下）
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$ROOT"

echo "=========================================="
echo "初始化 serverdata 资源目录..."
echo "=========================================="

SERVERDATA_DIRS=(
    "serverdata/data"
    "serverdata/logs"
    "serverdata/files"
    "serverdata/keys"
    "serverdata/prompts"
    "serverdata/uploads"
)
for dir in "${SERVERDATA_DIRS[@]}"; do
    if [ ! -d "$dir" ]; then
        echo "✗ 创建 $dir"
        mkdir -p "$dir"
    else
        echo "✓ $dir"
    fi
done

echo "=========================================="
echo "启动 core（dispatcher 统一入口）"
echo "=========================================="

# 生产模式：uv 管理，uvicorn dispatcher
if command -v uv >/dev/null 2>&1 && [ -f pyproject.toml ]; then
    exec uv run uvicorn dispatcher:app --host 0.0.0.0 --port "${PORT:-8090}"
else
    exec uvicorn dispatcher:app --host 0.0.0.0 --port "${PORT:-8090}"
fi
