#!/bin/sh

case "$1" in
	--help)
		echo "usage: $0 [other_git_tree...] [--] [test_scripts]"
		exit 0
		;;
esac

die () {
	echo >&2 "error: $*"
	exit 1
}

run_one_dir () {
	if test $# -eq 0; then
		set -- p????-*.sh
	fi
	echo "=== Running $# tests in ${GIT_TEST_INSTALLED:-this tree} ==="
	for t in "$@"; do
		./$t $GIT_TEST_OPTS
	done
}

unpack_git_rev () {
	rev=$1
	mkdir -p build/$rev
	(cd "$(git rev-parse --show-cdup)" && git archive --format=tar $rev) |
	(cd build/$rev && tar x)
}
build_git_rev () {
	rev=$1
	cp ../../config.mak build/$rev/config.mak
	(cd build/$rev && make $GIT_PERF_MAKE_OPTS) ||
	die "failed to build revision '$mydir'"
}

run_dirs_helper () {
	mydir=${1%/}
	shift
	while test $# -gt 0 -a "$1" != -- -a ! -f "$1"; do
		shift
	done
	if test $# -gt 0 -a "$1" = --; then
		shift
	fi
	if [ ! -d "$mydir" ]; then
		rev=$(git rev-parse --verify "$mydir" 2>/dev/null) ||
		die "'$mydir' is neither a directory nor a valid revision"
		if [ ! -d build/$rev ]; then
			unpack_git_rev $rev
		fi
		build_git_rev $rev
		mydir=build/$rev
	fi
	if test "$mydir" = .; then
		unset GIT_TEST_INSTALLED
	else
		GIT_TEST_INSTALLED="$mydir/bin-wrappers"
		export GIT_TEST_INSTALLED
	fi
	run_one_dir "$@"
}

run_dirs () {
	while test $# -gt 0 -a "$1" != -- -a ! -f "$1"; do
		run_dirs_helper "$@"
		shift
	done
}

GIT_PERF_AGGREGATING_LATER=t
export GIT_PERF_AGGREGATING_LATER

cd "$(dirname $0)"
. ../../GIT-BUILD-OPTIONS

if test $# = 0 -o "$1" = -- -o -f "$1"; then
	set -- . "$@"
fi
run_dirs "$@"
./aggregate.perl "$@"
