#!/usr/bin/make -ef

include /usr/share/dpkg/pkg-info.mk

export PYBUILD_NAME = certbot

ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
export NOCHECK = true
endif

SUBPROJECTS = acme certbot certbot-apache certbot-dns-cloudflare certbot-dns-digitalocean certbot-dns-dnsimple certbot-dns-gehirn certbot-dns-google certbot-dns-linode certbot-dns-ovh certbot-dns-rfc2136 certbot-dns-route53 certbot-dns-sakuracloud certbot-nginx

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

override_dh_auto_build:
	$(foreach proj,$(SUBPROJECTS),\
		pybuild --build --name $(proj) --dir $(proj); \
	)

override_dh_auto_install:
	$(foreach proj,$(SUBPROJECTS),\
		pybuild --install --name $(proj) --dir $(proj) --dest-dir debian/python3-$(proj); \
	)

# Add other important files, build the documentation
	mkdir -p debian/certbot/usr/bin debian/certbot/etc/letsencrypt
	mv debian/python3-certbot/usr/bin/* debian/certbot/usr/bin
	rm -rf debian/python3-certbot/usr/bin
	mv debian/cli.ini debian/certbot/etc/letsencrypt/cli.ini
	export PYTHONPATH="$$(find $(CURDIR)/debian/ -type d -name dist-packages 2>/dev/null | tr '\n' ':')$$PYTHONPATH"; \
		http_proxy='127.0.0.1:9' \
		https_proxy='127.0.0.1:9' \
		sphinx-build -N -bhtml certbot/docs/ build/html
	export PYTHONPATH="$$(find $(CURDIR)/debian/ -type d -name dist-packages 2>/dev/null | tr '\n' ':')$$PYTHONPATH"; \
		http_proxy='127.0.0.1:9' \
		https_proxy='127.0.0.1:8' \
		sphinx-build -N -bman certbot/docs/ build/man

ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
# Run tests with all packages available in PYTHONPATH
# Use shell loop to maintain PYTHONPATH across iterations
	export PYTHONPATH="$$(find $(CURDIR)/debian/ -type d -name dist-packages 2>/dev/null | tr '\n' ':')$$PYTHONPATH"; \
	for proj in $(SUBPROJECTS); do \
		echo "Running tests for $$proj..."; \
		proj_under=$$(echo "$$proj" | tr '-' '_'); \
		if [ -d "$$proj/src/$$proj_under/_internal/tests" ]; then \
			cd $$proj && python3 -m pytest ./ -v && cd .. || exit 1; \
		else \
			echo "No tests for $$proj"; \
		fi \
	done
endif

override_dh_auto_test:
	@echo "Skip until after install."

override_dh_installinit:
	@echo "Skip."

override_dh_installsystemd:
	dh_installsystemd --no-start --no-stop-on-upgrade --package=certbot certbot.service
	dh_installsystemd --package=certbot certbot.timer

override_dh_gencontrol:
	echo "Abi-major-version=${DEB_VERSION_UPSTREAM}" | cut -d. -f1 >> debian/abi.substvars
	echo "Abi-major-minor-version=${DEB_VERSION_UPSTREAM}" | cut -d. -f1,2 >> debian/abi.substvars
	dh_gencontrol -- -Tdebian/abi.substvars
