57 lines · 1.3 KB · Text
RawDownload
#!/usr/bin/env bash## Build eval-cli for x86_64 Linux from any host (macOS, Linux, etc.)# using Docker. The resulting binary is placed at the path printed on# completion (default: target/eval-cli).## Usage:#   crates/eval_cli/script/build-linux [--output PATH]## Examples:#   crates/eval_cli/script/build-linux#   crates/eval_cli/script/build-linux --output ~/bin/eval-cli## Prerequisites: Docker must be installed and running. set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"REPO_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd)"OUTPUT="${REPO_ROOT}/target/eval-cli" while [[ $# -gt 0 ]]; do    case $1 in        --output)            OUTPUT="$2"            shift 2            ;;        *)            echo "Unknown option: $1" >&2            exit 1            ;;    esacdone cd "$REPO_ROOT" IMAGE_TAG="eval-cli-builder" echo "Building eval-cli for x86_64-unknown-linux-gnu..."echo "  Repo root: $REPO_ROOT"echo "  Output:    $OUTPUT"echo "" docker build \    --platform linux/amd64 \    -f crates/eval_cli/Dockerfile \    -t "$IMAGE_TAG" \    . CONTAINER_ID=$(docker create "$IMAGE_TAG" /eval-cli)mkdir -p "$(dirname "$OUTPUT")"docker cp "$CONTAINER_ID":/eval-cli "$OUTPUT"docker rm "$CONTAINER_ID" > /dev/null echo ""echo "Built successfully: $OUTPUT"echo "  $(file "$OUTPUT")"