#!/bin/bash -ef

set -eo pipefail

WANT_PYTHON_VERSION="$1"
if [[ "$WANT_PYTHON_VERSION" == *'t' ]]; then
	WANT_FREETHREADED=true
else
	WANT_FREETHREADED=false
fi
WANT_PYTHON_VERSION=$(echo "$WANT_PYTHON_VERSION" | sed 's/t$//g')
if [[ -z "$WANT_PYTHON_VERSION" ]]; then
	echo "::error::Missing required argument: want Python version (e.g., 3.11)"
	exit 1
fi

GOT_PYTHON=$(which python)
GOT_PYTHON_VERSION=$(python --version)
GOT_FREETHREADED=$(python -c "import sysconfig; print(str(sysconfig.get_config_var('Py_GIL_DISABLED') == 1).lower())")
echo "Checking Python found at:"
echo "  \$(which python)     == ${GOT_PYTHON}"
echo "  \$(python --version) == ${GOT_PYTHON_VERSION}"
echo "  Free-threaded       == ${GOT_FREETHREADED}"
echo "for"
echo "  \$MNE_CI_KIND        == ${MNE_CI_KIND}"
if [[ "${MNE_CI_KIND}" == "conda" ]]; then
	WANT="micromamba/envs/mne"
elif [[ "${MNE_CI_KIND}" == "old" ]]; then
	WANT="mne-python/mne-python/.venv/bin"
elif [[ "${MNE_CI_KIND}" == 'pip'* ]] || [[ "${MNE_CI_KIND}" == "minimal" ]]; then
	WANT="/hostedtoolcache/"
else
	echo "::error::Unrecognized MNE_CI_KIND=${MNE_CI_KIND}"
	exit 1
fi
if [[ "${GOT_PYTHON}" != *"${WANT}"* ]]; then
	echo "::error::Did not find \"${WANT}\" in PATH (dumped below)"
	tr ':' '\n' <<< "$PATH"
	exit 1
else
	echo "☑ Found expected \"${WANT}\""
fi
if [[ "${GOT_PYTHON_VERSION}" != *"${WANT_PYTHON_VERSION}"* ]]; then
	echo "::error::Did not find expected Python version \"${WANT_PYTHON_VERSION}\""
	exit 1
else
	echo "☑ Found expected Python version \"${WANT_PYTHON_VERSION}\""
fi
if [[ "${GOT_FREETHREADED}" != "${WANT_FREETHREADED}" ]]; then
	echo "::error::Expected free-threaded=${WANT_FREETHREADED} but got ${GOT_FREETHREADED}"
	exit 1
else
	echo "☑ Found expected free-threaded=${WANT_FREETHREADED}"
fi