#!/usr/bin/env bash # 清空 SQLite、watch 状态与测量/行为运行时目录后启动 Fish API(uvicorn)。 # # bash fish_api/start_fresh.sh # PORT=8001 HOST=0.0.0.0 bash fish_api/start_fresh.sh # # 保留测量输出目录以复用点云(配合 .env 中 MEASURE_REUSE_EXISTING_CLOUDS=true): # KEEP_MEASURE_OUTPUT=1 bash fish_api/start_fresh.sh # # 首次使用请先:cd fish_api && uv sync # set -euo pipefail DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" cd "$DIR" # 勿在此默认导出 PUBLIC_BASE_URL:shell 环境会覆盖 fish_api/.env(pydantic 优先级)。 # 未设置时由 app/settings.py 的默认值或 .env 中的 PUBLIC_BASE_URL 决定。 unset PYTHON_FISH_MEASURE PYTHON_FISH_ACTION 2>/dev/null || true if command -v uv >/dev/null 2>&1; then PY=(uv run python) else PY=(python3) fi "${PY[@]}" -m app.prestart_fresh PORT="${PORT:-8000}" HOST="${HOST:-0.0.0.0}" if command -v uv >/dev/null 2>&1; then exec uv run uvicorn app.main:app --host "$HOST" --port "$PORT" else exec uvicorn app.main:app --host "$HOST" --port "$PORT" fi