fix(deploy): .env 中带空格的值未加引号导致 install.sh 以 127 失败
现象: ./deploy/.env: line 53: Miku.pmx: command not found [install] 第 53 行执行失败(退出码 127) 根因:deploy/.env.example 的 MODEL_CONVERT_PMX=Hatsune Miku.pmx 值含空格 却没加引号,install.sh 用 `set -a; . deploy/.env` 载入时被切成 「赋值 + 命令」,Miku.pmx 被当成命令执行。 修复: 1. 模板改为 MODEL_CONVERT_PMX="Hatsune Miku.pmx"(占位符值同样加引号); 2. 新增 deploy/env-lib.sh:.env 语法预检,install.sh / ctl.sh 在 source 之前检查,报错给出「哪一行 / 原文 / 改法」, 与反引号建议单引号; 3. install.sh 的 ERR trap 补上出错文件名(lineno 属于被 source 的 .env, 只报行号无法定位); 4. 新增 test/env-file.spec.ts 12 项回归测试,锁住「模板可被 shell 原样载入」; 5. 版本升到 0.2.1,README(.md/.txt)/DSH.md 补 .env 写法约定、FAQ 与测试数量。
This commit is contained in:
+5
-3
@@ -24,10 +24,10 @@ HOST=0.0.0.0
|
||||
ADMIN_DIR=/opt/opendance/admin
|
||||
|
||||
# ---- 现有 MySQL / MariaDB 实例(本项目不安装、不管理数据库)----
|
||||
DB_HOST=<existing-mysql-host>
|
||||
DB_HOST='<existing-mysql-host>'
|
||||
DB_PORT=3306
|
||||
DB_USER=opendance_app
|
||||
DB_PASS=<数据库口令>
|
||||
DB_PASS='<数据库口令>'
|
||||
DB_NAME=opendance
|
||||
# 生产环境必须为 false,表结构一律走 TypeORM migration
|
||||
DB_SYNCHRONIZE=false
|
||||
@@ -50,7 +50,9 @@ ASSIMP_BIN=assimp
|
||||
# humanoid 骨骼名映射不全时会自动回退交付 GLB 并写进 conversion_note
|
||||
MODEL_CONVERT_FORMAT=glb
|
||||
# 压缩包里优先选用的 PMX 文件名(大小写不敏感);找不到时按"格式优先级 -> 目录最浅 -> 文件最大"挑
|
||||
MODEL_CONVERT_PMX=Hatsune Miku.pmx
|
||||
# 值里含空格或 shell 元字符时必须用引号包起来(install.sh 会用
|
||||
# `set -a; . deploy/.env` 真的执行本文件;不加引号会把 "Miku.pmx" 当命令)
|
||||
MODEL_CONVERT_PMX="Hatsune Miku.pmx"
|
||||
# 单次转换超时(毫秒)
|
||||
MODEL_CONVERT_TIMEOUT_MS=180000
|
||||
|
||||
|
||||
Reference in New Issue
Block a user