#!/bin/bash
#
# Copyright (C) 2017 Philippe Proulx <pproulx@efficios.com>
# Copyright (C) 2019 Simon Marchi <simon.marchi@efficios.com>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; only version 2
# of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#

# Execute a shell command in the appropriate environment to have access to the
# bt2 Python bindings. For example, one could use it to run a specific Python
# binding test case with:
#
#   $ tests/utils/run_python_bt2 python3 ./tests/utils/python/testrunner.py \
#     -t test_value.MapValueTestCase.test_deepcopy \
#     ./tests/bindings/python/bt2

if [ "x${BT_TESTS_SRCDIR:-}" != "x" ]; then
	UTILSSH="$BT_TESTS_SRCDIR/utils/utils.sh"
else
	UTILSSH="$(dirname "$0")/../utils/utils.sh"
fi

# shellcheck source=../utils/utils.sh
source "$UTILSSH"

usage() {
	echo "Usage: run_python_bt2 [PYTHON_BIN] ..."
	echo ""
	echo "Run a binary with the python environment set to use the 'bt2' module"
	echo "from the build system prior to installation."
	echo ""
	echo "When building out of tree export the BT_TESTS_BUILDDIR variable with"
	echo "the path to the built 'tests' directory."
}

if [ "x$*" = "x" ]; then
	usage
	exit 1
fi

# Sanity check that the BT_TESTS_BUILDDIR value makes sense.
if [ ! -f "$BT_TESTS_BUILDDIR/Makefile" ]; then
	fold -w 80 -s <<- END
	$0: BT_TESTS_BUILDDIR does not point to a valid directory (\`$BT_TESTS_BUILDDIR/Makefile\` does not exist).

	If building out-of-tree, set BT_TESTS_BUILDDIR to point to the \`tests\` directory in the build tree.
	END
	exit 1
fi

run_python_bt2 "${@}"
