52 lines
1.3 KiB
Bash
Executable File
52 lines
1.3 KiB
Bash
Executable File
#!/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 ==="
|