#!/usr/bin/env bash set -e cdir=$(cd "$(dirname "$0")" && pwd) cd "$cdir" echo "=== Pipeline App Build ===" # 1. Create venv if [ ! -d py3 ]; then python3 -m venv py3 fi source py3/bin/activate # 2. Install foundation packages (clone to pkgs) mkdir -p pkgs for m in apppublic sqlor ahserver bricks-for-python xls2ddl rbac appbase; do echo "install $m ..." cd "$cdir/pkgs" if [ ! -d "$m" ]; then git clone https://git.opencomputing.cn/yumoqing/$m || echo "SKIP: $m clone failed" fi if [ -d "$m" ]; then cd "$m" "$cdir/py3/bin/pip" install . 2>&1 | tail -1 fi cd "$cdir" done # 3. Build bricks frontend cd "$cdir/pkgs" if [ ! -d bricks ]; then git clone https://git.opencomputing.cn/yumoqing/bricks || true fi if [ -d bricks/bricks ]; then cd bricks/bricks && bash build.sh 2>&1 | tail -3 fi ln -sf "$cdir/pkgs/bricks/dist" "$cdir/bricks" 2>/dev/null || true cd "$cdir" # 4. Move local business modules into pkgs/ for mod in pipeline_core pipeline_ops pipeline_dist; do if [ -d "$mod" ]; then mv "$mod" "pkgs/$mod" fi done # 5. Install business modules (clone external, local already in pkgs) for mod in pipeline-sdlc showcase evaluate pipeline-service pipeline-task; do cd "$cdir/pkgs" if [ ! -d "$mod" ]; then git clone https://git.opencomputing.cn/yumoqing/$mod || echo "SKIP: $mod" fi cd "$cdir" done # 6. pip install all modules from pkgs/ for mod in pipeline_core pipeline_ops pipeline_dist pipeline-sdlc showcase; do if [ -d "pkgs/$mod" ]; then "$cdir/py3/bin/pip" install "pkgs/$mod/" 2>&1 | tail -1 fi done # 7. SDLC pipeline-sdlc: regenerate CRUD from json if [ -d "pkgs/pipeline-sdlc/json" ]; then cd "pkgs/pipeline-sdlc/json" "$cdir/py3/bin/xls2ui" -m ../models -o ../wwwroot pipeline-sdlc *.json 2>&1 | grep -c 'handle' | xargs -I{} echo " xls2ui: {} tables handled" cd "$cdir" fi # 8. Create runtime dirs mkdir -p "$cdir/logs" "$cdir/files" "$cdir/conf" # 6. Fix auto-assign created_by in CRUD dspys (xls2ui overwritten) for d in sd_projects sd_iterations; do for t in add update; do f="$cdir/wwwroot/pipeline-sdlc/$d/${t}_${d}.dspy" [ -f "$f" ] && grep -q 'created_by' "$f" || sed -i "s/ns\['org_id'\] = userorgid/ns['org_id'] = userorgid\nns['created_by'] = userorgid/" "$f" done done chmod +x "$cdir/start.sh" "$cdir/stop.sh" 2>/dev/null || true echo "=== Build complete ==="