Files
rules_bun/tests/integration_test/examples_basic_run_e2e_test.sh
2026-03-15 11:04:44 +01:00

53 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
binary="$1"
workdir="$(mktemp -d)"
log_file="${workdir}/basic.log"
cleanup() {
if [[ -n ${server_pid:-} ]] && kill -0 "${server_pid}" 2>/dev/null; then
kill "${server_pid}" 2>/dev/null || true
wait "${server_pid}" 2>/dev/null || true
fi
rm -rf "${workdir}"
}
trap cleanup EXIT
start_launcher() {
local launcher="$1"
local log_target="$2"
shift 2
if [[ ${launcher} == *.cmd ]]; then
local command
printf -v command '"%s"' "${launcher}"
for arg in "$@"; do
printf -v command '%s "%s"' "${command}" "${arg}"
done
cmd.exe /c "${command}" >"${log_target}" 2>&1 &
else
"${launcher}" "$@" >"${log_target}" 2>&1 &
fi
server_pid=$!
}
start_launcher "${binary}" "${log_file}"
for _ in {1..20}; do
if grep -Fq "rules_bun bun_dev example" "${log_file}"; then
exit 0
fi
if ! kill -0 "${server_pid}" 2>/dev/null; then
cat "${log_file}" >&2
echo "basic example process exited unexpectedly" >&2
exit 1
fi
sleep 0.5
done
cat "${log_file}" >&2
echo "Timed out waiting for bun_dev example output" >&2
exit 1