#!/usr/bin/env bash set -e cdir=$(pwd) echo "=== FOMS Build ===" # 1. Create venv [ ! -d py3 ] && python3 -m venv py3 source py3/bin/activate # 2. Install foundation packages mkdir -p pkgs for m in apppublic sqlor ahserver bricks-for-python xls2ddl; do cd $cdir/pkgs [ ! -d "$m" ] && git clone https://git.opencomputing.cn/yumoqing/$m cd $m && $cdir/py3/bin/pip install -e . done # 3. Build bricks frontend cd $cdir/pkgs [ ! -d "bricks" ] && git clone https://git.opencomputing.cn/yumoqing/bricks cd bricks/bricks && ./build.sh ln -sf $cdir/pkgs/bricks/dist $cdir/bricks # 4. Install auth modules for m in appbase rbac; do cd $cdir/pkgs [ ! -d "$m" ] && git clone https://git.opencomputing.cn/yumoqing/$m cd $m && $cdir/py3/bin/pip install -e . done # 5. Install FOMS cd $cdir && $cdir/py3/bin/pip install -e . # 6. Generate DDL cd $cdir [ -d models ] && json2ddl mysql models/ > $cdir/models/mysql.ddl.sql 2>/dev/null || echo " skip ddl" # 7. Generate CRUD UI (xls2ui for json/) cd $cdir if [ -d json ]; then cd json for f in *.json; do echo " xls2ui $f" xls2ui -m ../models -o ../wwwroot foms "$f" 2>/dev/null || echo " skipped" done fi # 8. Create runtime dirs mkdir -p $cdir/logs $cdir/files echo "=== FOMS Build Complete ==="