#!/usr/bin/env bash set -euo pipefail # Navigate to repository root cd "$(dirname "$0")/.." REPO_ROOT="$(pwd)" EXAMPLE_DIR="$REPO_ROOT/examples/multihop" FLAG_FILE="/tmp/databuild_multihop_alpha_complete" CLI="$REPO_ROOT/bazel-bin/databuild/databuild" echo "=== DataBuild Multi-Hop Example ===" echo # Clean up previous state echo "Cleaning up previous state..." rm -f "$FLAG_FILE" rm -rf "$EXAMPLE_DIR/.databuild/" (cd "$EXAMPLE_DIR" && "$CLI" 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) cd "$EXAMPLE_DIR" OUTPUT=$("$CLI" wants list 2>&1) # Extract port from status PORT=$("$CLI" 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 "From the examples/multihop directory, try the following commands:" echo "(The CLI uses databuild.json by default)" echo echo " # Check server status" echo " databuild status" echo echo " # Create a want for data/beta (triggers dependency chain)" echo " databuild want data/beta" echo echo " # Monitor wants" echo " databuild wants list" echo echo " # Monitor job runs" echo " databuild job-runs list" echo echo " # Monitor partitions" echo " databuild partitions list" echo echo " # Stop the server when done" echo " databuild stop" echo echo "==========================================="