#!/usr/bin/make -f
# See debhelper(7) (uncomment to enable)
# output every command that modifies files on the build system.
# export DH_VERBOSE = 1

export PYBUILD_NAME=snakemake
export PYBUILD_DESTDIR_python3=debian/snakemake
# copy the tests and run them from there to avoid having to clean up after them
export PYBUILD_BEFORE_TEST_python3=chmod +x {dir}/bin/snakemake; cp -r {dir}/bin {dir}/tests {build_dir}
export PYBUILD_AFTER_TEST_python3=rm -fr {build_dir}/bin {build_dir}/tests
export PYBUILD_TEST_ARGS=python{version} -m pytest -v {build_dir}/tests/test*.py -k 'not test_cwl and not test_cwl_singularity and not test_url_include and not test_wrapper and not test_issue1083 and not test_github_issue78 and not test_container and not test_singularity and not test_singularity_conda and not test_convert_to_cwl and not test_report and not test_report_zip and not test_archive and not test_jupyter_notebook and not test_conda and not test_upstream_conda and not test_conda_custom_prefix and not test_script and not test_issue635 and not test_issue1093 and not test_default_resources and not test_default_remote and not test_remote and not test_output_file_cache_remote and not test_tibanna and not test_ancient and not test_module_complex and not test_module_complex2 and not test_module_with_script and not test_module_report and not test_modules_meta_wrapper and not test_tes and not test_github_issue1062 and not test_env_modules'

# Avoiding new queue and leaving all in one big package for now
#DOCPACKAGE=snakemake-doc
#TESTPACKAGE=snakemake-test
DOCPACKAGE=snakemake
TESTPACKAGE=snakemake

# Skipped because they download executables (which is forbidden in Debian buildd and debci)
# Snakefile/snakemake-wrapper/CWL scripts: test_cwl, test_cwl_singularity, test_url_include, test_wrapper, test_module_with_script, test_module_report, test_module_complex(2), test_modules_meta_wrapper
# Docker images: test_issue1083, test_github_issue78, test_container, test_singularity, test_singularity_conda, test_cwl_singularity, test_convert_to_cwl, test_report, test_report_zip, test_module_complex(2)
# Conda packages: test_archive, test_jupyter_notebook, test_conda, test_upstream_conda, test_conda_custom_prefix, test_wrapper, test_script, test_issue635, test_issue1093, test_singularity_conda, test_report, test_report_zip
# Note that even if conda were added to Debian (ITP #926416), using it normally would still be downloading executables = forbidden
# Modification to run without conda was previously attempted on test_issue635 (succeeded) and test_issue1093 (failed as current bwa gives a different ordering), but is not in current use

# Skipped due to not-in-Debian dependencies
# python3-moto (RFP #777089): test_default_resources, test_default_remote, test_remote, test_output_file_cache_remote
# python3-tibanna: test_tibanna (possibly also specific to one cloud provider?)
# python3-tes: test_tes

# Skipped in build due to network use, but run in autopkgtest: test_ancient test_github_issue1062
# Tests marked @connected skip themselves in this case

# possibly an actual bug: test_env_modules

export PATH:=$(shell pybuild --print build_dir --interpreter python3 --name $(PYBUILD_NAME))/bin:$(PATH)

# Force the use of python3's sphinx-build.
export SPHINXBUILD=/usr/share/sphinx/scripts/python3/sphinx-build

%:
	dh $@ --with python3,sphinxdoc --buildsystem=pybuild

override_dh_auto_build:
	dh_auto_build
	PATH=$(shell pybuild --print build_dir --interpreter python3)/bin:$(PATH) \
	PYTHONPATH=$(shell pybuild --print build_dir --interpreter python3) \
		python3 setup.py build_sphinx

execute_after_dh_installdocs:
	find debian -name '__pycache__' -o name '.gitignore' | xargs rm -rf

# the modules.sh is a workaround for #928826; putting it in PYBUILD_BEFORE_TEST_python3 doesn't work
override_dh_auto_test:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	. /etc/profile.d/modules.sh && PYBUILD_SYSTEM=custom dh_auto_test
endif

override_dh_installdocs:
	dh_installdocs
	rm -rf debian/$(DOCPACKAGE)/usr/share/doc/snakemake/html
	rm -rf debian/$(DOCPACKAGE)/usr/share/doc/snakemake/examples
	mkdir -p debian/$(DOCPACKAGE)/usr/share/doc/snakemake/html
	mkdir -p debian/$(DOCPACKAGE)/usr/share/doc/snakemake/examples
	cp -r build/sphinx/html/* debian/$(DOCPACKAGE)/usr/share/doc/snakemake/html/
	cp -r examples/* debian/$(DOCPACKAGE)/usr/share/doc/snakemake/examples
ifneq (snakemake,$(TESTPACKAGE))
	if [ -d debian/snakemake/usr/share/doc/snakemake/tests/ ]; then \
	    mv debian/snakemake/usr/share/doc/snakemake/tests debian/$(TESTPACKAGE)/usr/share/doc/snakemake/ ; \
	fi
endif

override_dh_auto_clean:
	dh_auto_clean
	find . -name '__pycache__' | xargs -r rm -r
	rm -rf .snakemake snakemake.egg-info
