#!/usr/bin/env bash set -euo pipefail : "${HOMESICK_CMD:=ruby /workspace/bin/homesick}" behavior_verbose="${BEHAVIOR_VERBOSE:-0}" while [[ $# -gt 0 ]]; do case "$1" in -v|--verbose) echo "Enabling verbose output for behavior suite" behavior_verbose=1 ;; *) echo "Unknown argument: $1" >&2 echo "Usage: $0 [--verbose]" >&2 exit 1 ;; esac shift done script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" repo_root="$(cd "$script_dir/.." && pwd)" run_docker_build() { echo "Building Docker image for behavior suite..." local build_log local -a build_cmd if docker buildx version >/dev/null 2>&1; then build_cmd=(docker buildx build --load -f "$repo_root/docker/behavior/Dockerfile" -t homesick-behavior:latest "$repo_root") else build_cmd=(docker build -f "$repo_root/docker/behavior/Dockerfile" -t homesick-behavior:latest "$repo_root") fi if [[ "$behavior_verbose" == "1" ]]; then "${build_cmd[@]}" return fi build_log="$(mktemp)" if ! "${build_cmd[@]}" >"$build_log" 2>&1; then cat "$build_log" >&2 rm -f "$build_log" exit 1 fi rm -f "$build_log" } run_docker_build echo "Running behavior suite in Docker container..." docker run --rm \ -e HOMESICK_CMD="$HOMESICK_CMD" \ -e BEHAVIOR_VERBOSE="$behavior_verbose" \ homesick-behavior:latest