diff --git a/README.md b/README.md index 059d292..15c6084 100644 --- a/README.md +++ b/README.md @@ -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 ``` ## 文档 diff --git a/copier-template/README.md.jinja b/copier-template/README.md.jinja index ce582ca..9824a31 100644 --- a/copier-template/README.md.jinja +++ b/copier-template/README.md.jinja @@ -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 ``` 规则: diff --git a/copier-template/scripts/app.cmd.jinja b/copier-template/app.cmd.jinja similarity index 89% rename from copier-template/scripts/app.cmd.jinja rename to copier-template/app.cmd.jinja index 3672807..4f3e240 100644 --- a/copier-template/scripts/app.cmd.jinja +++ b/copier-template/app.cmd.jinja @@ -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%" diff --git a/copier-template/scripts/app.sh.jinja b/copier-template/app.sh.jinja similarity index 85% rename from copier-template/scripts/app.sh.jinja rename to copier-template/app.sh.jinja index 09211c1..ea8f187 100644 --- a/copier-template/scripts/app.sh.jinja +++ b/copier-template/app.sh.jinja @@ -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" diff --git a/docs/COPIER_TEMPLATE.md b/docs/COPIER_TEMPLATE.md index 95b08ec..ae4c0c6 100644 --- a/docs/COPIER_TEMPLATE.md +++ b/docs/COPIER_TEMPLATE.md @@ -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 ``` diff --git a/scripts/iti.cmd b/scripts/iti.cmd index 2fbffab..9369743 100644 --- a/scripts/iti.cmd +++ b/scripts/iti.cmd @@ -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 diff --git a/scripts/iti.sh b/scripts/iti.sh index edecb44..296094f 100644 --- a/scripts/iti.sh +++ b/scripts/iti.sh @@ -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"