#!/usr/bin/env bash set -e cdir=$(cd "$(dirname "$0")" && pwd) cd "$cdir" echo "=== pipeline-service Build ===" # 1. Create venv if not exists if [ ! -d py3 ]; then python3 -m venv py3 fi source py3/bin/activate # 2. Install foundation packages mkdir -p pkgs for m in apppublic sqlor ahserver xls2ddl; do echo "install $m ..." cd "$cdir/pkgs" if [ ! -d "$m" ]; then git clone https://git.opencomputing.cn/yumoqing/$m 2>/dev/null || echo "SKIP: $m" fi if [ -d "$m" ]; then cd "$m" "$cdir/py3/bin/pip" install . 2>&1 | tail -1 fi cd "$cdir" done # 3. Install self echo "install pipeline_service ..." "$cdir/py3/bin/pip" install . 2>&1 | tail -1 # 4. Generate DDL from models if [ -d models ] && ls models/*.json >/dev/null 2>&1; then echo "generating DDL ..." "$cdir/py3/bin/json2ddl" mysql models/ > "$cdir/mysql.ddl.sql" 2>/dev/null || echo " DDL generation skipped (json2ddl not available)" fi # 5. Create runtime dirs mkdir -p "$cdir/logs" chmod +x "$cdir/scripts/load_path.py" 2>/dev/null || true echo "=== Build complete ===" echo "" echo "Next steps:" echo " 1. CREATE DATABASE pipeline;" echo " 2. mysql -u root -p pipeline < mysql.ddl.sql" echo " 3. Load appcodes: init/data.json via host app build.sh" echo " 4. Register step handlers in host app"