22 lines
1018 B
Bash
Executable File
22 lines
1018 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd -P)"
|
|
if [[ $# -lt 1 || "$1" != "integration" || $# -gt 2 || ( $# -eq 2 && "$2" != "--keep" ) ]]; then
|
|
printf 'usage: %s integration [--keep]\n' "$0" >&2
|
|
exit 2
|
|
fi
|
|
for command in node npm git; do command -v "$command" >/dev/null || { printf 'missing command: %s\n' "$command" >&2; exit 127; }; done
|
|
THT_BIN="${THT_BIN:-$repo_root/harness/.venv/bin/tht}"
|
|
[[ "$THT_BIN" = /* && -x "$THT_BIN" ]] || { printf 'THT_BIN must be an absolute executable path\n' >&2; exit 127; }
|
|
npm --prefix "$repo_root/backend" run build
|
|
safe_env=(env -i "PATH=$PATH" "HOME=${HOME:-/nonexistent}" "LANG=${LANG:-C}" "THT_BIN=$THT_BIN")
|
|
for name in LC_ALL TMPDIR TZ; do
|
|
[[ -n "${!name:-}" ]] && safe_env+=("$name=${!name}")
|
|
done
|
|
[[ -n "${P1_ACCEPTANCE_FAIL_AT:-}" ]] && safe_env+=("P1_ACCEPTANCE_FAIL_AT=$P1_ACCEPTANCE_FAIL_AT")
|
|
set +e
|
|
"${safe_env[@]}" node "$repo_root/backend/scripts/p1-acceptance.mjs" "$@"
|
|
status=$?
|
|
set -e
|
|
exit "$status"
|