#!/bin/bash -e

mbd_modules()
{
	local f
	for f in $(./pysources modules); do
		if [ "${f}" == "./setup.py" -o "${f}" == "./manual/conf.py" ]; then  # can't be used for doctests
			continue
		fi
		local module="$(basename $(tr '/' '.' <<< ${f:6}) '.py')"
		printf "=> Doctest on %s (%s)...\n" "${f}" "${module}"
		( cd ./src/ && ./run-doctest "${module}" )
	done
}

mbd_scripts()
{
	local f
	for f in $(./pysources scripts); do
		# Workaround: Temporary *.py symlink, else doctest won't import script
		local f_module="${f}.py"
		ln -s -f "$(basename "${f}")" "${f_module}"
		printf "=> Doctest on script %s (%s)...\n" "${f}" "${f_module}"
		( cd ./src/ && python3 -B -m doctest "../${f_module}" )
		rm "${f_module}"
	done
}

python3 ./setup.py version_py

if [ -z "${1}" ]; then
	mbd_modules
	mbd_scripts
else
	mbd_${1}
fi
