#!/usr/bin/make -f


ETC=/etc/shinken/
VAR=/var/lib/shinken/
SCRIPTS_BIN=/usr/share/pyshared/shinken/bin/
RUN=/var/run/shinken/
LOG=/var/log/shinken/

%:
	dh $@ --with python2 --install-layout=deb,quilt

clean:
	find -type d -name build -print0 | xargs -0 -r rm -rf \;
	find -type d -name Shinken.egg-info -print0 | xargs -0 -r rm -rf \;
	dh clean --with python2 --install-layout=deb,quilt

override_dh_install:
	# Common
	mkdir -p debian/shinken-common/etc/init.d/
	mkdir -p debian/shinken-common/etc/shinken/daemons/
	mkdir -p debian/shinken-common/etc/default/
	mkdir -p debian/shinken-common/etc/shinken/shinken-specific
	cp debian/shinken-common.default debian/shinken-common/etc/default/shinken
	sed -i "s|\$$ETC\\$$|$(ETC)|g" debian/shinken-common/etc/default/shinken
	sed -i "s|\$$VAR\\$$|$(VAR)|g" debian/shinken-common/etc/default/shinken
	sed -i "s|\$$SCRIPTS_BIN\\$$|$(SCRIPTS_BIN)|g" debian/shinken-common/etc/default/shinken
	sed -i "s|\$$RUN\\$$|$(RUN)|g" debian/shinken-common/etc/default/shinken
	sed -i "s|\$$LOG\\$$|$(LOG)|g" debian/shinken-common/etc/default/shinken
	## Prepare init script
	cp bin/init.d/shinken debian/shinken-common/etc/init.d/shinken
	sed -i -r 's/^# Default-Start:     2 3 4 5/# Default-Start:/g' debian/shinken-common/etc/init.d/shinken
	#cp debian/shinken-common.init debian/shinken-common/etc/init.d/shinken
	# Arbiter
	## Prepare init script
	cp bin/init.d/shinken-arbiter debian/shinken-common/etc/init.d/shinken-arbiter
	## Prepare config
	cp debian/etc/shinken.cfg debian/shinken-common/etc/shinken/
	cp debian/etc/resource.cfg debian/shinken-common/etc/shinken/
	cp debian/etc/commands.cfg debian/shinken-common/etc/shinken/
	cp debian/etc/contacts.cfg debian/shinken-common/etc/shinken/
	cp debian/etc/templates.cfg debian/shinken-common/etc/shinken/
	cp debian/etc/timeperiods.cfg debian/shinken-common/etc/shinken/
	cp -r debian/etc/hosts debian/shinken-common/etc/shinken/
	cp -r debian/etc/packs debian/shinken-common/etc/shinken/
	cp debian/etc/shinken-specific/arbiter.cfg debian/shinken-common/etc/shinken/shinken-specific
	cp debian/etc/shinken-specific/realms.cfg debian/shinken-common/etc/shinken/shinken-specific
	# Scheduler
	## init script
	cp bin/init.d/shinken-scheduler debian/shinken-common/etc/init.d/shinken-scheduler
	## ini file
	cp debian/etc/daemons/schedulerd.ini debian/shinken-common/etc/shinken/daemons/
	## shinken config
	cp debian/etc/shinken-specific/scheduler.cfg debian/shinken-common/etc/shinken/shinken-specific
	# Poller
	## init script
	cp bin/init.d/shinken-poller debian/shinken-common/etc/init.d/shinken-poller
	## ini file
	cp debian/etc/daemons/pollerd.ini debian/shinken-common/etc/shinken/daemons/
	## shinken config
	cp debian/etc/shinken-specific/poller.cfg debian/shinken-common/etc/shinken/shinken-specific
	# Broker
	## init script
	cp bin/init.d/shinken-broker debian/shinken-common/etc/init.d/shinken-broker
	## ini file
	cp debian/etc/daemons/brokerd.ini debian/shinken-common/etc/shinken/daemons/
	## shinken config
	cp debian/etc/shinken-specific/broker.cfg debian/shinken-common/etc/shinken/shinken-specific
	# Reactionner
	## init script
	cp bin/init.d/shinken-reactionner debian/shinken-common/etc/init.d/shinken-reactionner
	## ini file
	cp debian/etc/daemons/reactionnerd.ini debian/shinken-common/etc/shinken/daemons/
	## shinken config
	cp debian/etc/shinken-specific/reactionner.cfg debian/shinken-common/etc/shinken/shinken-specific
	# Receiver
	## init script
	cp bin/init.d/shinken-receiver debian/shinken-common/etc/init.d/shinken-receiver
	## ini file
	cp debian/etc/daemons/receiverd.ini debian/shinken-common/etc/shinken/daemons/
	## shinken config
	cp debian/etc/shinken-specific/receiver.cfg debian/shinken-common/etc/shinken/shinken-specific
	# Fix lsb tags
	sed -i -r 's/^(# Required-Start:.*|# Required-Stop:.*)$$/\1 $$remote_fs/' \
      debian/shinken-common/etc/init.d/shinken
	sed -i -r 's/(# Default-Stop:.*)S (.*)/\1\2/' \
      debian/shinken-common/etc/init.d/shinken
	sed -n -i '1h;1!H;$${;g;s/### BEGIN INIT INFO Redhat.*### END INIT INFO//g;p;}' \
      debian/shinken-common/etc/init.d/shinken-broker \
      debian/shinken-common/etc/init.d/shinken-arbiter \
      debian/shinken-common/etc/init.d/shinken-poller \
      debian/shinken-common/etc/init.d/shinken-receiver \
      debian/shinken-common/etc/init.d/shinken-reactionner \
      debian/shinken-common/etc/init.d/shinken-scheduler
	# Fix init.d-script-does-not-implement-required-option
	sed -i -r 's/^(.*)\|restart\|(.*)\)([:blank:]*)/\1|restart|force-reload|\2)\3/' \
      debian/shinken-common/etc/init.d/shinken
	sed -i -r 's#^"\$$curdir/shinken" \$$@ (.*)#case "\$$1" in \nstart)\n  "\$$curdir/shinken" start \1\n    ;;\n  stop)\n    "\$$curdir/shinken" stop \1\n    ;;\n  check|checkconfig)\n    "\$$curdir/shinken" checkconfig \1\n    ;;\n  reload)\n    "\$$curdir/shinken" reload \1\n    ;;\n  restart|force-reload)\n    "\$$curdir/shinken" restart \1\n    ;;\n  *)\n    echo "Usage: /etc/init.d/shinken-\1 [-d] {start|stop|reload|restart|check}\n\n  -d  start requested module(s) in debug mode, only useful with start|restart\n" || true\n    exit 1\nesac\n#' \
      debian/shinken-common/etc/init.d/shinken-broker \
      debian/shinken-common/etc/init.d/shinken-poller \
      debian/shinken-common/etc/init.d/shinken-receiver \
      debian/shinken-common/etc/init.d/shinken-reactionner \
      debian/shinken-common/etc/init.d/shinken-scheduler \
      debian/shinken-common/etc/init.d/shinken-arbiter
	# MODULES
	## Shinken-module-arbiter-collectd
	mkdir -p debian/shinken-module-arbiter-collectd/etc/shinken/shinken-specific
	cp debian/etc/shinken-specific/arbiter-collectd.cfg debian/shinken-module-arbiter-collectd/etc/shinken/shinken-specific/
	## shinken-module-arbiter-hotdependencies
	mkdir -p debian/shinken-module-arbiter-hotdependencies/etc/shinken/shinken-specific
	cp debian/etc/shinken-specific/arbiter-hotdependencies.cfg debian/shinken-module-arbiter-collectd/etc/shinken/shinken-specific/
	## shinken-module-arbiter-nsca
	mkdir -p debian/shinken-module-arbiter-nsca/etc/shinken/shinken-specific
	cp debian/etc/shinken-specific/arbiter-nsca.cfg debian/shinken-module-arbiter-nsca/etc/shinken/shinken-specific/
	## shinken-module-arbiter-ws
	mkdir -p debian/shinken-module-arbiter-ws/etc/shinken/shinken-specific
	cp debian/etc/shinken-specific/arbiter-ws.cfg debian/shinken-module-arbiter-ws/etc/shinken/shinken-specific/
	## shinken-module-broker-graphite
	mkdir -p debian/shinken-module-broker-graphite/etc/shinken/shinken-specific
	cp debian/etc/shinken-specific/broker-graphite.cfg debian/shinken-module-broker-graphite/etc/shinken/shinken-specific/
	## shinken-module-broker-livestatus
	mkdir -p debian/shinken-module-broker-livestatus/etc/shinken/shinken-specific
	cp debian/etc/shinken-specific/broker-livestatus.cfg debian/shinken-module-broker-livestatus/etc/shinken/shinken-specific/
	## shinken-module-broker-livestatus-mongodb
	mkdir -p debian/shinken-module-broker-livestatus-mongodb/etc/shinken/shinken-specific
	cp debian/etc/shinken-specific/broker-livestatus-mongodb.cfg debian/shinken-module-broker-livestatus-mongodb/etc/shinken/shinken-specific/
	## shinken-module-broker-livestatus-sqlite
	mkdir -p debian/shinken-module-broker-livestatus-sqlite/etc/shinken/shinken-specific
	cp debian/etc/shinken-specific/broker-livestatus-sqlite.cfg debian/shinken-module-broker-livestatus-sqlite/etc/shinken/shinken-specific/
	## Shinken-module-broker-webui
	mkdir -p debian/shinken-module-broker-webui/usr/share/shinken
	cp -r shinken/webui/htdocs debian/shinken-module-broker-webui/usr/share/shinken/
	mkdir -p debian/shinken-module-broker-webui/etc/shinken/shinken-specific
	cp debian/etc/shinken-specific/broker-webui.cfg debian/shinken-module-broker-webui/etc/shinken/shinken-specific/
	### Delete jquery file to get it from debian pacakge
	rm debian/shinken-module-broker-webui/usr/share/shinken/htdocs/js/jquery.js
	rm debian/shinken-module-broker-webui/usr/share/shinken/htdocs/font/FontAwesome.otf
	rm debian/shinken-module-broker-webui/usr/share/shinken/htdocs/font/fontawesome-webfont.ttf
	## Shinken-module-broker-webui-cfgpassword
	mkdir -p debian/shinken-module-broker-webui-cfgpassword/etc/shinken/shinken-specific
	cp debian/etc/shinken-specific/broker-webui-cfgpassword.cfg debian/shinken-module-broker-webui-cfgpassword/etc/shinken/shinken-specific/
	## Shinken-module-broker-webui-mongodb
	mkdir -p debian/shinken-module-broker-webui-mongodb/etc/shinken/shinken-specific
	cp debian/etc/shinken-specific/broker-webui-mongodb.cfg debian/shinken-module-broker-webui-mongodb/etc/shinken/shinken-specific/
	## Shinken-module-broker-webui-sqlitedb
	mkdir -p debian/shinken-module-broker-webui-sqlitedb/etc/shinken/shinken-specific
	cp debian/etc/shinken-specific/broker-webui-sqlitedb.cfg debian/shinken-module-broker-webui-sqlitedb/etc/shinken/shinken-specific/
	## shinken-module-commandfile
	mkdir -p debian/shinken-module-commandfile/etc/shinken/shinken-specific
	cp debian/etc/shinken-specific/commandfile.cfg debian/shinken-module-commandfile/etc/shinken/shinken-specific/
	## shinken-module-poller-nrpe
	mkdir -p debian/shinken-module-poller-nrpe/etc/shinken/shinken-specific
	cp debian/etc/shinken-specific/poller-nrpe.cfg debian/shinken-module-poller-nrpe/etc/shinken/shinken-specific/
	## Shinken-module-retention-picklefile
	mkdir -p debian/shinken-module-retention-picklefile/etc/shinken/shinken-specific
	cp debian/etc/shinken-specific/retention-picklefile.cfg debian/shinken-module-retention-picklefile/etc/shinken/shinken-specific/
	# INSTALL
	dh_install

override_dh_installinit:
	dh_installinit --no-start --name=shinken
	# MODULES
	## Shinken-module-broker-webui
	find debian/shinken-module-broker-webui/usr/share/shinken/htdocs/ -name "*.png" -exec chmod -x {} \;
	find debian/shinken-module-broker-webui/usr/share/shinken/htdocs/ -name "*.css" -exec chmod -x {} \;
	find debian/shinken-module-broker-webui/usr/share/shinken/htdocs/ -name "*.ttf" -exec chmod -x {} \;
	find debian/shinken-module-broker-webui/usr/share/shinken/htdocs/ -name "*.eot" -exec chmod -x {} \;
	find debian/shinken-module-broker-webui/usr/share/shinken/htdocs/ -name "*.woff" -exec chmod -x {} \;
	find debian/shinken-module-broker-webui/usr/share/shinken/htdocs/ -name "*.gif" -exec chmod -x {} \;
	find debian/shinken-module-broker-webui/usr/share/shinken/htdocs/ -name "*.ico" -exec chmod -x {} \;
	find debian/shinken-module-broker-webui/usr/share/shinken/htdocs/ -name "*.svg" -exec chmod -x {} \;
	find debian/shinken-module-broker-webui/usr/share/shinken/htdocs/ -name "*.otf" -exec chmod -x {} \;
