docs: add cmhub planning documents
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# 标准启动与验证入口(Unix shell 版),与 init.ps1 等价,二选一:
|
||||
# - WSL / Git Bash / macOS / Linux:用本文件 ./init.sh
|
||||
# - Windows 原生 PowerShell:用 ./init.ps1
|
||||
# 一条命令完成:依赖安装 -> 基础验证 -> 打印启动命令。
|
||||
# 命令已按 Django 技术栈预填;T-001 骨架落地后如有调整(如改用 uv),同步更新
|
||||
# docs/03-tech-stack.md、docs/00-ai-start-here.md 和 docs/current-state.md。
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
cd "$ROOT_DIR"
|
||||
|
||||
# 依赖管理 uv / pip 二选一(03-tech-stack 标为待定);默认 pip + requirements.txt。
|
||||
INSTALL_CMD=(pip install -r requirements.txt) # 或 uv sync
|
||||
VERIFY_CMD=(python manage.py test) # 基础验证 / 测试
|
||||
START_CMD=(python manage.py runserver) # 开发启动
|
||||
|
||||
ensure_configured() {
|
||||
local name="$1"
|
||||
local first="$2"
|
||||
if [[ "$first" == __REPLACE_* ]]; then
|
||||
echo "ERROR: 请先在 init.sh 中替换 ${name}。"
|
||||
echo " 同步更新 docs/03-tech-stack.md、docs/00-ai-start-here.md 和 docs/current-state.md 中的命令。"
|
||||
exit 2
|
||||
fi
|
||||
}
|
||||
|
||||
ensure_configured "INSTALL_CMD" "${INSTALL_CMD[0]}"
|
||||
ensure_configured "VERIFY_CMD" "${VERIFY_CMD[0]}"
|
||||
ensure_configured "START_CMD" "${START_CMD[0]}"
|
||||
|
||||
echo "==> 当前目录: $PWD"
|
||||
|
||||
if [ ! -f "manage.py" ]; then
|
||||
echo "ERROR: 未找到 manage.py。Django 骨架尚未初始化(见 docs/06-tasks.md 的 T-001)。"
|
||||
echo " 完成 T-001 后本脚本即可正常运行。"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "==> 同步依赖"
|
||||
"${INSTALL_CMD[@]}"
|
||||
|
||||
echo "==> 数据库迁移"
|
||||
python manage.py migrate
|
||||
|
||||
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 "如果基础验证失败,先修复基线状态,不要在坏的起点上继续叠新功能。"
|
||||
Reference in New Issue
Block a user