38 lines
1.3 KiB
Bash
38 lines
1.3 KiB
Bash
#!/usr/bin/env bash
|
||
# world 模块构建脚本:生成 DDL、生成 CRUD UI、链接 wwwroot 到宿主应用
|
||
set -euo pipefail
|
||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
MOD=world
|
||
|
||
# 定位宿主 Sage 根目录
|
||
SAGE_ROOT=""
|
||
for candidate in "$SCRIPT_DIR/../.." "$HOME/repos/sage" "$HOME/sage"; do
|
||
if [ -d "$candidate/wwwroot" ] && [ -d "$candidate/py3/bin" ]; then
|
||
SAGE_ROOT="$(cd "$candidate" && pwd)"
|
||
break
|
||
fi
|
||
done
|
||
if [ -z "$SAGE_ROOT" ]; then
|
||
echo "ERROR: sage root not found" >&2
|
||
exit 1
|
||
fi
|
||
PY="$SAGE_ROOT/py3/bin"
|
||
|
||
echo "==> 1/4 生成 DDL"
|
||
if [ -d "$SCRIPT_DIR/models" ]; then
|
||
"$PY/python3" "$PY/json2ddl" mysql "$SCRIPT_DIR/models" > "$SCRIPT_DIR/models/mysql.ddl.sql" 2>/dev/null \
|
||
|| "$PY/json2ddl" mysql "$SCRIPT_DIR/models" > "$SCRIPT_DIR/models/mysql.ddl.sql"
|
||
fi
|
||
|
||
echo "==> 2/4 生成 CRUD UI(xls2ui)"
|
||
if [ -d "$SCRIPT_DIR/json" ]; then
|
||
(cd "$SCRIPT_DIR" && "$PY/python3" "$PY/xls2ui" -m "$SCRIPT_DIR/models" -o "$SCRIPT_DIR/wwwroot" "$MOD" json/*.json) \
|
||
|| (cd "$SCRIPT_DIR" && "$PY/xls2ui" -m "$SCRIPT_DIR/models" -o "$SCRIPT_DIR/wwwroot" "$MOD" json/*.json)
|
||
fi
|
||
|
||
echo "==> 3/4 链接 wwwroot 到宿主应用"
|
||
mkdir -p "$SAGE_ROOT/wwwroot/$MOD"
|
||
ln -sfn "$SCRIPT_DIR/wwwroot" "$SAGE_ROOT/wwwroot/$MOD"
|
||
|
||
echo "==> 4/4 完成:world 模块构建成功"
|