47 lines
1.2 KiB
Bash
Executable File
47 lines
1.2 KiB
Bash
Executable File
#!/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"
|