#!/usr/bin/env pwsh # 标准启动与验证入口(Windows PowerShell 版),与 init.sh 等价,二选一: # - Windows 原生 PowerShell:用本文件 ./init.ps1 # - WSL / Git Bash / macOS / Linux:用 ./init.sh # 一条命令完成:依赖安装 -> 基础验证 -> 打印启动命令。 # 命令已按 Django 技术栈预填;T-001 骨架落地后如有调整(如改用 uv),同步更新 # docs/03-tech-stack.md、docs/00-ai-start-here.md 和 docs/current-state.md。 $ErrorActionPreference = "Stop" Set-Location -Path $PSScriptRoot # T-001 固定使用系统 Python 3.12,不使用虚拟环境。 $InstallCmd = "py -3.12 -m pip install -r requirements.txt" $VerifyCmd = "py -3.12 manage.py check" $StartCmd = "py -3.12 manage.py runserver" function Assert-Configured { param( [string]$Name, [string]$Value ) if ($Value -like "__REPLACE_*") { Write-Error "请先在 init.ps1 中替换 $Name。同步更新 docs/03-tech-stack.md、docs/00-ai-start-here.md 和 docs/current-state.md 中的命令。" exit 2 } } Assert-Configured -Name "InstallCmd" -Value $InstallCmd Assert-Configured -Name "VerifyCmd" -Value $VerifyCmd Assert-Configured -Name "StartCmd" -Value $StartCmd Write-Host "==> 当前目录: $($PWD.Path)" if (-not (Test-Path "manage.py")) { Write-Error "未找到 manage.py。Django 骨架尚未初始化(见 docs/06-tasks.md 的 T-001)。完成 T-001 后本脚本即可正常运行。" exit 1 } Write-Host "==> 同步依赖" Invoke-Expression $InstallCmd Write-Host "==> 运行基础验证" Invoke-Expression $VerifyCmd Write-Host "==> 启动命令" Write-Host " $StartCmd" if ($env:RUN_START_COMMAND -eq "1") { Write-Host "==> 启动应用" Invoke-Expression $StartCmd } else { Write-Host "如果希望 init.ps1 直接启动应用,请设置环境变量 RUN_START_COMMAND=1。" Write-Host "如果基础验证失败,先修复基线状态,不要在坏的起点上继续叠新功能。" }