44 lines
1.2 KiB
Bash
44 lines
1.2 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
# 标准启动与验证入口(Unix shell 版),与 init.ps1 等价,二选一:
|
|
# - WSL / Git Bash / macOS / Linux:用本文件 ./init.sh
|
|
# - Windows 原生 PowerShell:用 ./init.ps1
|
|
# 一条命令完成:依赖安装 -> 基础验证 -> 打印启动命令。
|
|
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
cd "$ROOT_DIR"
|
|
|
|
PYTHON=".venv/bin/python3.12"
|
|
PIP=".venv/bin/pip3.12"
|
|
|
|
INSTALL_CMD=("$PIP" install -r requirements.txt)
|
|
VERIFY_CMD=("$PYTHON" manage.py check)
|
|
START_CMD=("$PYTHON" manage.py runserver)
|
|
|
|
echo "==> 当前目录: $PWD"
|
|
|
|
if [[ ! -f "$PYTHON" && ! -f "$PYTHON.exe" ]]; then
|
|
echo "ERROR: venv 不存在或损坏,请先运行: python3.12 -m venv .venv"
|
|
exit 1
|
|
fi
|
|
|
|
echo "==> 同步依赖"
|
|
"${INSTALL_CMD[@]}"
|
|
|
|
echo "==> 运行基础验证"
|
|
"${VERIFY_CMD[@]}"
|
|
|
|
echo "==> 启动命令"
|
|
printf ' %q' "${START_CMD[@]}"
|
|
printf '\n'
|
|
|
|
if [ "${RUN_START_COMMAND:-0}" = "1" ]; then
|
|
echo "==> 启动应用"
|
|
exec "${START_CMD[@]}"
|
|
fi
|
|
|
|
echo "如果希望 init.sh 直接启动应用,请设置 RUN_START_COMMAND=1。"
|
|
echo "如果基础验证失败,先修复基线状态,不要在坏的起点上继续叠新功能。"
|