set -e

hook_log=$(mktemp)
trap 'rm -f "$hook_log"' 0 HUP INT TERM

run_quietly() {
	label=$1
	shift
	: > "$hook_log"

	if "$@" > "$hook_log" 2>&1; then
		printf '✓ %s\n' "$label"
		return 0
	else
		status=$?
	fi

	printf '✗ %s\n' "$label" >&2
	cat "$hook_log" >&2
	return "$status"
}

run_quietly 'Markdown lint' vp run lint:markdown
run_quietly 'Oxlint' vp run lint:oxlint:agent
run_quietly 'Typecheck' vp run test:typecheck
run_quietly 'Unit tests' vp run test:unit:agent
