#!/usr/bin/env bash set -euo pipefail # Navigate to repository root cd "$(dirname "$0")/.." CONFIG="examples/multihop/config.json" FLAG_FILE="/tmp/databuild_multihop_alpha_complete" echo "=== DataBuild Multi-Hop Example ===" echo # Clean up previous state echo "Cleaning up previous state..." rm -f "$FLAG_FILE" rm -rf .databuild/multihop/ ./bazel-bin/databuild/databuild --config "$CONFIG" stop 2>/dev/null || true # Build the binary echo "Building databuild CLI..." bazel build //databuild:databuild echo echo "=== Starting server ===" echo # Start the server by making a request (triggers auto-start) OUTPUT=$(./bazel-bin/databuild/databuild --config "$CONFIG" wants list 2>&1) # Extract port from status PORT=$(./bazel-bin/databuild/databuild --config "$CONFIG" status 2>&1 | grep "Port:" | awk '{print $2}') echo echo "Server running at: http://127.0.0.1:${PORT}" echo echo "=== Ready to run example ===" echo echo "Try the following commands:" echo echo " # Check server status" echo " ./bazel-bin/databuild/databuild --config $CONFIG status" echo echo " # Create a want for data/beta (triggers dependency chain)" echo " ./bazel-bin/databuild/databuild --config $CONFIG want data/beta" echo echo " # Monitor wants" echo " ./bazel-bin/databuild/databuild --config $CONFIG wants list" echo echo " # Monitor job runs" echo " ./bazel-bin/databuild/databuild --config $CONFIG job-runs list" echo echo " # Monitor partitions" echo " ./bazel-bin/databuild/databuild --config $CONFIG partitions list" echo echo " # Stop the server when done" echo " ./bazel-bin/databuild/databuild --config $CONFIG stop" echo echo "==========================================="