#!/usr/bin/env bash set -euo pipefail export DOCKER_BUILDKIT=1 repository_root=$(cd "$(dirname "$0")/.." && pwd) output_directory="${THT_THT_OUTPUT_DIRECTORY:-$repository_root/dist/tht}" usage() { cat <<'EOF' Usage: bash scripts/build-tht.sh [--all] [--output ABSOLUTE_DIRECTORY] Build every supported native tht binary with the repository-pinned Docker builder. EOF } while [[ $# -gt 0 ]]; do case "$1" in --all) ;; --output) [[ $# -ge 2 ]] || { echo "--output requires an absolute directory" >&2; exit 2; } output_directory=$2 shift ;; --help|-h) usage exit 0 ;; *) echo "unknown argument: $1" >&2 usage >&2 exit 2 ;; esac shift done if [[ "$output_directory" != /* || "$output_directory" == / || "$output_directory" == */ || "$output_directory" == *//* || "/$output_directory/" == */../* || "/$output_directory/" == */./* ]]; then echo "THT_THT_OUTPUT_DIRECTORY must be an absolute canonical path" >&2 exit 2 fi mkdir -p "$output_directory" docker build --file "$repository_root/docker/tht.Dockerfile" --output "type=local,dest=$output_directory" "$repository_root"