#!/usr/bin/make -f

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

# needed by tests
export DH_GOLANG_INSTALL_EXTRA := pkg/controlsvc/reload_test_yml

export DH_GOLANG_EXCLUDES := \
 example \
 github.com/ansible/receptor/tests/goroutines

# do not test kubernetes yet
export SKIP_KUBE = 1

# needed for receptor tests
export PATH := $(CURDIR)/_build/bin/:$(PATH)

export PYBUILD_SYSTEM = pyproject

%:
	dh $@ --builddirectory=_build --buildsystem=golang

debian/receptor.1:
	help2man --output=$@ --name="Main controller daemon" --version-string="$(DEB_VERSION_UPSTREAM)" _build/bin/receptor

debian/receptorctl.1:
	cd receptorctl && help2man --output=../$@ --name="Receptor daemon client" --version-string="$(DEB_VERSION_UPSTREAM)" python3 -m receptorctl

debian/receptor-python-worker.1:
	cd receptor-python-worker && help2man --output=../$@ --name="Receptor worker helper" --version-string="$(DEB_VERSION_UPSTREAM)" python3 -m receptor-python-worker

execute_before_dh_clean:
	rm -f golang-github-prep-socketpair/golang-github-prep-socketpair
	rm -f golang-github-jupp0r-go-priority-queue/golang-github-jupp0r-go-priority-queue

execute_after_dh_clean:
	dh_clean debian/receptorctl.1 debian/receptor-python-worker.1 debian/receptor.1

execute_before_dh_installman: debian/receptor.1

execute_before_dh_installman: debian/receptorctl.1 debian/receptor-python-worker.1

execute_before_dh_auto_clean:
	rm -f receptorctl/tests/receptorctl receptorctl/tests/receptorctl.egg-info
	rm -rf docs/guides tests/artifacts-output
	echo $(DEB_VERSION_UPSTREAM) > $(CURDIR)/receptorctl/.VERSION
	dh_auto_clean --buildsystem=pybuild --sourcedirectory=receptorctl -- --name=receptorctl
	rm $(CURDIR)/receptorctl/.VERSION
	echo $(DEB_VERSION_UPSTREAM) > $(CURDIR)/receptor-python-worker/.VERSION
	dh_auto_clean --buildsystem=pybuild --sourcedirectory=receptor-python-worker -- --name=receptor-python-worker
	rm $(CURDIR)/receptor-python-worker/.VERSION

execute_before_dh_auto_configure:
	echo $(DEB_VERSION_UPSTREAM) > $(CURDIR)/receptorctl/.VERSION
	dh_auto_configure --buildsystem=pybuild --sourcedirectory=receptorctl -- --name=receptorctl
	echo $(DEB_VERSION_UPSTREAM) > $(CURDIR)/receptor-python-worker/.VERSION
	dh_auto_configure --buildsystem=pybuild --sourcedirectory=receptor-python-worker -- --name=receptor-python-worker

execute_before_dh_auto_build:
	mkdir -p _build/src/github.com/prep
	ln -srf golang-github-prep-socketpair _build/src/github.com/prep/socketpair
	mkdir -p _build/src/github.com/jupp0r
	ln -srf golang-github-jupp0r-go-priority-queue _build/src/github.com/jupp0r/go-priority-queue
	cd docs && sphinx-build -Dhtml_theme=default -Dpygments_style=default -Dextensions=sphinx.ext.autosectionlabel source guides
	dh_auto_build --buildsystem=pybuild --sourcedirectory=receptorctl -- --name=receptorctl
	dh_auto_build --buildsystem=pybuild --sourcedirectory=receptor-python-worker -- --name=receptor-python-worker

override_dh_auto_build:
	dh_auto_build -- -ldflags "-X 'github.com/ansible/receptor/internal/version.Version=$(DEB_VERSION_UPSTREAM)'"

execute_after_dh_auto_build:
	mv _build/bin/receptor-cl _build/bin/receptor

execute_before_dh_auto_install:
	dh_auto_install --buildsystem=pybuild --sourcedirectory=receptorctl -- --name=receptorctl
	dh_auto_install --buildsystem=pybuild --sourcedirectory=receptor-python-worker -- --name=receptor-python-worker

override_dh_auto_test:
	dh_auto_test --builddirectory=_build --buildsystem=golang -- -p 1 

execute_after_dh_auto_test:
	cd receptorctl/tests && ln -sf ../receptorctl . && ln -sf ../receptorctl.egg-info .
	mkdir -p tests/artifacts-output
	ln -sfr _build/bin/receptor tests/artifacts-output/receptor
	dh_auto_test --buildsystem=pybuild --sourcedirectory=receptorctl -- --name=receptorctl --before-test="cp -r {dir}/tests/mesh-definitions {build_dir}/tests/"

