Files
CapacityReport/scripts/run.py
T
nixevol 98f03b3e0e refactor: 统一运行/编译脚本为 scripts/ 下纯 Python(自动 venv,傻瓜式)
新增 _env.py 共享工具与 dev/run/tauri_dev/build_server/build_tauri/build_docker/clean 脚本,
删除旧 build.{sh,ps1,bat}、根 run.bat/debug.bat/start.sh/dev.py、supervisord.conf、packaging/Dockerfile,
Docker 改以根 Dockerfile 为准并重写 compose(/data 卷)。
2026-06-26 11:03:19 +08:00

50 lines
1.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""本地运行脚本:构建前端(如缺失)并启动后端服务。
用法:
python scripts/run.py # 默认 0.0.0.0:9081
python scripts/run.py --port 8080 # 指定端口
python scripts/run.py --rebuild # 强制重新构建前端
首次运行会自动创建 .venv、安装依赖;前端构建产物缺失时自动构建。按 Ctrl+C 停止。
"""
from __future__ import annotations
import argparse
import subprocess
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parent))
import _env # noqa: E402
def main() -> int:
_env.setup_console()
parser = argparse.ArgumentParser(description="本地运行 CapacityReport 服务")
parser.add_argument("--host", default="0.0.0.0", help="监听地址(默认 0.0.0.0)")
parser.add_argument("--port", default="9081", help="监听端口(默认 9081)")
parser.add_argument("--rebuild", action="store_true", help="强制重新构建前端")
args = parser.parse_args()
python = _env.ensure_venv()
dist_index = _env.FRONTEND_DIR / "dist" / "index.html"
if args.rebuild or not dist_index.exists():
_env.build_frontend()
_env.step(f"启动服务 -> http://localhost:{args.port}")
_env.info("按 Ctrl+C 停止")
try:
completed = subprocess.run(
[str(python), "-m", "app.main", "--host", args.host, "--port", str(args.port)],
cwd=str(_env.ROOT),
)
except KeyboardInterrupt:
return 0
return completed.returncode
if __name__ == "__main__":
raise SystemExit(main())