chore: 调整业务项目脚本为根目录入口

main
NoahLan 2 weeks ago
parent 5ef6da5b53
commit 079e1ffb98

@ -71,8 +71,8 @@ app = create_app(
```bash
./scripts/iti.sh make-app ../my-business-app my_business_app
cd ../my-business-app
./scripts/app.sh init
./scripts/app.sh serve 8000
./app.sh init
./app.sh serve 8000
```
`iti-system`
@ -80,14 +80,14 @@ cd ../my-business-app
```bash
./scripts/iti.sh make-system-app ../my-system-app my_system_app
cd ../my-system-app
./scripts/app.sh init-system
./app.sh init-system
```
所有脚本都带中文 help
```bash
./scripts/iti.sh help
./scripts/app.sh help
./app.sh help
```
## 文档

@ -12,41 +12,41 @@ FastAPI 业务后端项目。
## 初始化
```bash
./scripts/app.sh init
./app.sh init
```
Windows
```bat
scripts\app.cmd init
app.cmd init
```
{% if include_system %}
同步系统 migration 和 seed
```bash
./scripts/app.sh init-system
./app.sh init-system
```
Windows
```bat
scripts\app.cmd init-system
app.cmd init-system
```
{% endif %}
## 开发
```bash
./scripts/app.sh serve 8000
./scripts/app.sh test
./app.sh serve 8000
./app.sh test
```
## 数据库迁移
```bash
./scripts/app.sh migration "alice add example table"
./scripts/app.sh migrate
./app.sh migration "alice add example table"
./app.sh migrate
```
规则:

@ -2,7 +2,7 @@
setlocal enabledelayedexpansion
set "SCRIPT_DIR=%~dp0"
set "ROOT_DIR=%SCRIPT_DIR%.."
set "ROOT_DIR=%SCRIPT_DIR%"
pushd "%ROOT_DIR%" >nul
set "COMMAND=%~1"
@ -32,7 +32,7 @@ goto help_error
echo {{ project_name }} 项目脚本
echo.
echo 用法:
echo scripts\app.cmd ^<命令^> [参数]
echo app.cmd ^<命令^> [参数]
echo.
echo 常用命令:
echo help 显示帮助
@ -49,10 +49,10 @@ echo init-system system-sync + migrate + system-seed
{% endif %}echo init install + migrate{% if include_system %} + system-seed{% endif %}
echo.
echo 示例:
echo scripts\app.cmd install
echo scripts\app.cmd serve 8000
echo scripts\app.cmd migration "alice add order table"
{% if include_system %}echo scripts\app.cmd init-system
echo app.cmd install
echo app.cmd serve 8000
echo app.cmd migration "alice add order table"
{% if include_system %}echo app.cmd init-system
{% endif %}popd >nul
exit /b 0
@ -81,7 +81,7 @@ goto end
:migration
set "MESSAGE=%~1"
if "%MESSAGE%"=="" (
echo 缺少 migration 说明。示例:scripts\app.cmd migration "alice add order table" 1>&2
echo 缺少 migration 说明。示例app.cmd migration "alice add order table" 1>&2
exit /b 2
)
uv run alembic revision --autogenerate -m "%MESSAGE%"

@ -1,7 +1,7 @@
#!/usr/bin/env sh
set -eu
ROOT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
ROOT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
cd "$ROOT_DIR"
show_help() {
@ -9,7 +9,7 @@ show_help() {
{{ project_name }} 项目脚本
用法:
./scripts/app.sh <命令> [参数]
./app.sh <命令> [参数]
常用命令:
help 显示帮助
@ -26,10 +26,10 @@ show_help() {
{% endif %} init install + migrate{% if include_system %} + system-seed{% endif %}
示例:
./scripts/app.sh install
./scripts/app.sh serve 8000
./scripts/app.sh migration "alice add order table"
{% if include_system %} ./scripts/app.sh init-system
./app.sh install
./app.sh serve 8000
./app.sh migration "alice add order table"
{% if include_system %} ./app.sh init-system
{% endif %}
EOF
}
@ -57,7 +57,7 @@ case "$command" in
migration)
message=${1:-}
if [ -z "$message" ]; then
echo "缺少 migration 说明。示例:./scripts/app.sh migration \"alice add order table\"" >&2
echo "缺少 migration 说明。示例:./app.sh migration \"alice add order table\"" >&2
exit 2
fi
uv run alembic revision --autogenerate -m "$message"

@ -8,8 +8,8 @@
```bash
./scripts/iti.sh make-app ../my-business-app my_business_app
cd ../my-business-app
./scripts/app.sh init
./scripts/app.sh serve 8000
./app.sh init
./app.sh serve 8000
```
Windows
@ -17,8 +17,8 @@ Windows
```bat
scripts\iti.cmd make-app ..\my-business-app my_business_app
cd ..\my-business-app
scripts\app.cmd init
scripts\app.cmd serve 8000
app.cmd init
app.cmd serve 8000
```
## 参数
@ -45,8 +45,8 @@ scripts\app.cmd serve 8000
- 示例 FastAPI 模块
- 示例 SQLAlchemy 模型
- 示例测试
- `scripts/app.sh`
- `scripts/app.cmd`
- `app.sh`
- `app.cmd`
## 系统业务
@ -54,37 +54,37 @@ scripts\app.cmd serve 8000
生成后执行:
```bash
./scripts/app.sh init-system
./app.sh init-system
```
Windows
```bat
scripts\app.cmd init-system
app.cmd init-system
```
## 生成项目脚本
模板会生成两份脚本:
- `scripts/app.sh`Linux / macOS / Git Bash。
- `scripts/app.cmd`Windows CMD。
- `app.sh`Linux / macOS / Git Bash。
- `app.cmd`Windows CMD。
常用命令:
```bash
./scripts/app.sh help
./scripts/app.sh install
./scripts/app.sh test
./scripts/app.sh serve 8000
./scripts/app.sh migration "alice add order table"
./scripts/app.sh migrate
./app.sh help
./app.sh install
./app.sh test
./app.sh serve 8000
./app.sh migration "alice add order table"
./app.sh migrate
```
`iti-system` 的项目还会有:
```bash
./scripts/app.sh system-sync
./scripts/app.sh system-seed
./scripts/app.sh init-system
./app.sh system-sync
./app.sh system-seed
./app.sh init-system
```

@ -120,7 +120,7 @@ if "%PACKAGE%"=="" (
set "PACKAGE=!PACKAGE:-=_!"
)
for %%I in ("%TARGET%") do set "PROJECT_NAME=%%~nxI"
uvx copier copy "%CD%\copier-template" "%TARGET%" -d project_name="!PROJECT_NAME!" -d project_slug="!PACKAGE!" -d include_system="%INCLUDE_SYSTEM%"
uvx copier copy --defaults "%CD%\copier-template" "%TARGET%" -d project_name="!PROJECT_NAME!" -d project_slug="!PACKAGE!" -d include_system="%INCLUDE_SYSTEM%"
goto end
:end

@ -89,7 +89,7 @@ case "$command" in
if [ "$command" = "make-system-app" ]; then
include_system=true
fi
uvx copier copy "$ROOT_DIR/copier-template" "$target" \
uvx copier copy --defaults "$ROOT_DIR/copier-template" "$target" \
-d project_name="$(basename "$target")" \
-d project_slug="$package" \
-d include_system="$include_system"

Loading…
Cancel
Save