mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-08-09 23:44:20 +08:00
83 lines
2.3 KiB
Bash
Executable File
83 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
|
||
set -euo pipefail
|
||
|
||
SCRIPT_DIR="$(cd -P "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||
MOVIEPILOT_BIN="$PROJECT_ROOT/moviepilot"
|
||
VENV_PYTHON="$PROJECT_ROOT/venv/bin/python"
|
||
|
||
show_usage() {
|
||
cat <<'EOF'
|
||
用法:
|
||
./scripts/start-local.sh 启动后端开发服务(前台运行)
|
||
./scripts/start-local.sh backend 启动后端开发服务(前台运行)
|
||
./scripts/start-local.sh service start 启动后端和已安装的前端服务
|
||
./scripts/start-local.sh service start --safe 以安全模式启动完整服务
|
||
./scripts/start-local.sh stop|restart|status 管理后端和前端服务
|
||
./scripts/start-local.sh logs [OPTIONS] 查看后端日志
|
||
./scripts/start-local.sh help 显示本帮助
|
||
EOF
|
||
}
|
||
|
||
if [[ ! -x "$MOVIEPILOT_BIN" ]]; then
|
||
printf '未找到本地 CLI:%s\n' "$MOVIEPILOT_BIN" >&2
|
||
exit 1
|
||
fi
|
||
|
||
if [[ ! -x "$VENV_PYTHON" ]]; then
|
||
printf '未找到项目虚拟环境:%s\n请先执行:%s install deps\n' "$VENV_PYTHON" "$MOVIEPILOT_BIN" >&2
|
||
exit 1
|
||
fi
|
||
|
||
# 显式传入配置目录,避免被仓库中的临时 .moviepilot.env 覆盖。
|
||
if [[ -z "${CONFIG_DIR:-}" ]]; then
|
||
if [[ -n "${MOVIEPILOT_CONFIG_DIR:-}" ]]; then
|
||
CONFIG_DIR="$MOVIEPILOT_CONFIG_DIR"
|
||
elif [[ -d "${HOME:-}/Documents/moviepilot" ]]; then
|
||
CONFIG_DIR="${HOME}/Documents/moviepilot"
|
||
else
|
||
CONFIG_DIR="$PROJECT_ROOT/config"
|
||
fi
|
||
fi
|
||
export CONFIG_DIR
|
||
export PYTHONUNBUFFERED="${PYTHONUNBUFFERED:-1}"
|
||
export DEBUG="${DEBUG:-true}"
|
||
export DEV="${DEV:-true}"
|
||
|
||
cd "$PROJECT_ROOT"
|
||
|
||
if [[ "$#" -eq 0 ]]; then
|
||
set -- backend
|
||
fi
|
||
|
||
command_name="$1"
|
||
shift
|
||
|
||
case "$command_name" in
|
||
backend|start)
|
||
if [[ "$#" -gt 0 ]]; then
|
||
printf '后端模块启动不接受额外参数;完整服务请使用:%s service start [OPTIONS]\n' "$0" >&2
|
||
exit 2
|
||
fi
|
||
exec "$VENV_PYTHON" -m app.main
|
||
;;
|
||
service)
|
||
if [[ "$#" -eq 0 ]]; then
|
||
set -- start
|
||
fi
|
||
exec "$MOVIEPILOT_BIN" "$@"
|
||
;;
|
||
stop|restart|status|logs|doctor|config|version)
|
||
exec "$MOVIEPILOT_BIN" "$command_name" "$@"
|
||
;;
|
||
help|--help|-h)
|
||
show_usage
|
||
;;
|
||
*)
|
||
printf '未知命令:%s\n\n' "$command_name" >&2
|
||
show_usage >&2
|
||
exit 2
|
||
;;
|
||
esac
|