#!/usr/bin/make -f
SHELL=bash  # needed for the <(echo …) process subsitution temporary file
# tricks with help2man
export DH_VERBOSE=1
export PYBUILD_DESTDIR_python3=debian/python3-mypy
export PYBUILD_NAME=mypy
PPATH=$(CURDIR)
PY3V=$(shell py3versions -dv)
include /usr/share/dpkg/pkg-info.mk
ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
	WITH += ,sphinxdoc
endif

%:
	dh $@ --with python3$(WITH) --buildsystem=pybuild

override_dh_auto_build:
	dh_auto_build
ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
	PYTHONPATH=$(PPATH) help2man 'python3 -m mypy' --no-info \
		   --version-string="${DEB_VERSION_UPSTREAM}" \
		   --name 'Optional Static Typing for Python' > debian/mypy.1
	sed -i 's/python3 -m mypy/mypy/g' debian/mypy.1
	sed -i 's/python3/mypy/g' debian/mypy.1
	sed -i 's/PYTHON3/MYPY/g' debian/mypy.1
	PYTHONPATH=$(PPATH) help2man 'python3 -m mypy.dmypy' --no-info \
		   --version-string="${DEB_VERSION_UPSTREAM}" \
		   --include <(echo -e "[NAME]\ndmymy \- Client for mypy daemon mode") \
		   > debian/dmypy.1
	sed -i '/\.\.\./d' debian/dmypy.1 # Delete the "..."
	PYTHONPATH=$(PPATH) help2man 'python3 -m mypy.dmypy start' --no-info \
		   --version-string="${DEB_VERSION_UPSTREAM}" \
		   --include <(echo -e "[NAME]\ndmypy_start \- Start a mypy daemon") \
		   > debian/dmypy-start.1
	PYTHONPATH=$(PPATH) help2man 'python3 -m mypy.dmypy restart' --no-info \
		   --version-string="${DEB_VERSION_UPSTREAM}" \
		   --include <(echo -e "[NAME]\ndmypy_restart \- Restart a mypy daemon") \
		   > debian/dmypy-restart.1
	PYTHONPATH=$(PPATH) help2man 'python3 -m mypy.dmypy status' --no-info \
		   --version-string="${DEB_VERSION_UPSTREAM}" \
		   --include <(echo -e "[NAME]\ndmypy_status \- Show a mypy daemon status") \
		   > debian/dmypy-status.1
	PYTHONPATH=$(PPATH) help2man 'python3 -m mypy.dmypy stop' --no-info \
		   --version-string="${DEB_VERSION_UPSTREAM}" \
		   --include <(echo -e "[NAME]\ndmypy_stop \- Stop a mypy daemon") \
		   > debian/dmypy-stop.1
	PYTHONPATH=$(PPATH) help2man 'python3 -m mypy.dmypy kill' --no-info \
		   --version-string="${DEB_VERSION_UPSTREAM}" \
		   --include <(echo -e "[NAME]\ndmypy_kill \- Kill a mypy daemon") \
		   > debian/dmypy-kill.1
	PYTHONPATH=$(PPATH) help2man 'python3 -m mypy.dmypy check' --no-info \
		   --version-string="${DEB_VERSION_UPSTREAM}" \
		   --include <(echo -e "[NAME]\ndmypy_check \- Type check some Python files with a mypy daemon") \
		   > debian/dmypy-check.1
	PYTHONPATH=$(PPATH) help2man 'python3 -m mypy.dmypy recheck' --no-info \
		   --version-string="${DEB_VERSION_UPSTREAM}" \
		   --include <(echo -e "[NAME]\ndmypy_recheck \- Type check the same files from the previous run") \
		   > debian/dmypy-recheck.1
	PYTHONPATH=$(PPATH) help2man 'python3 -m mypy.dmypy hang' --no-info \
		   --version-string="${DEB_VERSION_UPSTREAM}" \
		   --include <(echo -e "[NAME]\ndmypy_hang \- Hang a mypy daemon, as a debug hack") \
		   > debian/dmypy-hang.1
	PYTHONPATH=$(PPATH) help2man 'python3 -m mypy.dmypy daemon' --no-info \
		   --version-string="${DEB_VERSION_UPSTREAM}" \
		   --include <(echo -e "[NAME]\ndmypy_daemon \- Run a mypy daemon in the foreground") \
		   > debian/dmypy-daemon.1
	PYTHONPATH=$(PPATH) help2man 'python${PY3V} -m mypy.stubgen' --no-info \
		   --no-discard-stderr --version-string="${DEB_VERSION_UPSTREAM}" \
		   --include <(echo -e "[NAME]\nstubgen \- Generate draft stubs for Python modules.") \
		   > debian/stubgen.1
	PYTHONPATH=$(CURDIR) $(MAKE) -C docs html
endif

override_dh_auto_clean:
	rm -f debian/*.1
	dh_auto_clean
ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
	$(MAKE) -C docs clean
endif

override_dh_auto_install:
	dh_auto_install
	dh_movefiles --package=mypy --sourcedir=debian/python3-mypy usr/bin

override_dh_auto_test:
ifeq (,$(filter nocheck,$(DEB_BUILD_PROFILES)))
	PYBUILD_SYSTEM=custom \
		PYBUILD_TEST_ARGS="{interpreter} -m mypy \
		--config-file {dir}/mypy_self_check.ini -p mypy" dh_auto_test
	dh_auto_install
	PATH=$$PATH:$(CURDIR)/debian/mypy/usr/bin/ pytest-3 -n auto \
	     -o testpaths=mypy/test -o python_files=test*.py \
	     -o python_classes= -o python_functions=
endif
