#!/usr/bin/make -f

#export DH_VERBOSE=1

include /usr/share/openstack-pkg-tools/pkgos.make

%:
	dh $@ --buildsystem=python_distutils --with python2,sphinxdoc,systemd

# clean sphinx build output
override_dh_clean:
	dh_clean
	rm -f debian/*.upstart
	rm -f debian/*.init
	rm -f debian/*.service
	rm -f debian/python-swift.postinst
	rm -f $(CURDIR)/swift-test.conf

# build with sphinx documentation
ifeq (,$(findstring nodocs, $(DEB_BUILD_OPTIONS)))
override_dh_sphinxdoc:
	dh_auto_build
	PYTHONPATH=. sphinx-build doc/source $(CURDIR)/debian/swift-doc/usr/share/doc/swift-doc/base
	PYTHONPATH=. sphinx-build api-ref/source $(CURDIR)/debian/swift-doc/usr/share/doc/swift-doc/api-ref
	PYTHONPATH=. sphinx-build install-guide/source $(CURDIR)/debian/swift-doc/usr/share/doc/swift-doc/install-guide
	rm -rf \
		debian/swift-doc/usr/share/doc/swift-doc/install-guide/search.html \
		debian/swift-doc/usr/share/doc/swift-doc/install-guide/.doctrees
	dh_sphinxdoc -O--buildsystem=python_distutils
endif

ifeq (,$(findstring nocheck, $(DEB_BUILD_OPTIONS)))
override_dh_auto_test:
	echo "[unit_test]\nfake_syslog = True" > $(CURDIR)/swift-test.conf
	SWIFT_TEST_CONFIG_FILE=$(CURDIR)/swift-test.conf PYTHONPATH=. nosetests -v test/unit --exe \
		--exclude-test=test.unit.common.test_utils.TestUtils.test_get_logger_sysloghandler_plumbing
	rm -f $(CURDIR)/swift-test.conf
endif

override_dh_auto_build:
	dh_auto_build
	/usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func python-swift.postinst

override_dh_install:
	rm debian/tmp/usr/bin/swift-init

	# Create the init scripts and systemd unit files from the template
	set -e ; for i in $(sort $(wildcard debian/*.init.in)) ; do \
		MYINIT=`echo $$i | sed s/.init.in//` ; \
		cp $$i $$MYINIT.init ; \
		cat debian/init-script-template >>$$MYINIT.init ; \
		debian/gen-systemd-unit $$i ; \
	done

	dh_install --fail-missing
	rm -rf debian/python-swift/usr/lib/python*/dist-packages/test

gen-init-configurations:
	# Create the init scripts and systemd unit files from the template
	set -e ; for i in $(sort $(wildcard debian/*.init.in)) ; do \
		MYINIT=`echo $$i | sed s/.init.in//` ; \
		cp $$i $$MYINIT.init ; \
		cat debian/init-script-template >>$$MYINIT.init ; \
		debian/gen-systemd-unit $$i ; \
	done
	# TODO: Upstart

override_dh_systemd_enable: gen-init-configurations
	echo "Do nothing"

override_dh_systemd_start:
	echo "Do nothing"

override_dh_installinit: gen-init-configurations
	set -e ; for i in $(sort $(wildcard debian/*.init.in)) ; do \
		MYINIT=`echo $$i | sed -e s/.init.in// -e s:debian/::` ; \
		INITPKG=`echo $$MYINIT | cut -d. -f1` ; \
		INITNAME=`echo $$MYINIT | cut -d. -f2` ; \
		echo "Package: $$INITPKG Init: $$INITNAME" ; \
		dh_systemd_enable -p$$INITPKG --name=$$INITNAME ; \
		case $$INITNAME in \
		swift-object-expirer|swift-container-reconciler) \
			dh_installinit --error-handler=true --restart-after-upgrade -p$$INITPKG --name=$$INITNAME ;; \
		*) \
			dh_installinit --error-handler=true --restart-after-upgrade -p$$INITPKG --name=$$INITNAME ; \
			cp debian/$$INITPKG.$$INITNAME@.service debian/$$INITPKG/lib/systemd/system/$$INITNAME@.service ;; \
		esac ; \
		dh_systemd_start -p$$INITPKG --name=$$INITNAME ; \
	done

override_dh_installdocs:
	dh_installdocs

	dh_installdocs -A AUTHORS
