#!/usr/bin/make -f

%:
	dh $@ --with phpcomposer

override_dh_auto_build:
	CACHEDIR=$(CURDIR)/debian/missing-sources/ bin/install-jsdeps.sh -s -e

override_dh_auto_clean:
	CACHEDIR=$(CURDIR)/debian/missing-sources/ bin/install-jsdeps.sh -d

	debconf-updatepo

override_dh_install:
	dh_install

	install -m 0644 $(CURDIR)/.htaccess $(CURDIR)/debian/roundcube-core/etc/roundcube/htaccess
	install -m 0644 $(CURDIR)/composer.json-dist $(CURDIR)/debian/roundcube-core/usr/share/roundcube/composer.json

	# database intial
	install -m 0644 $(CURDIR)/SQL/mysql.initial.sql $(CURDIR)/debian/roundcube-core/usr/share/dbconfig-common/data/roundcube/install/mysql
	install -m 0644 $(CURDIR)/SQL/postgres.initial.sql $(CURDIR)/debian/roundcube-core/usr/share/dbconfig-common/data/roundcube/install/pgsql
	install -m 0644 $(CURDIR)/SQL/sqlite.initial.sql $(CURDIR)/debian/roundcube-core/usr/share/dbconfig-common/data/roundcube/install/sqlite3

	# database update
	cp -r $(CURDIR)/debian/sql/* $(CURDIR)/debian/roundcube-core/usr/share/dbconfig-common/data/roundcube/upgrade/

	# see jsdeps.json
	rm -rf $(CURDIR)/debian/roundcube-core/usr/share/roundcube/program/js/tinymce/plugins/compat3x # not in the prod package
	rm -f $(CURDIR)/debian/roundcube-core/usr/share/roundcube/program/js/tinymce/langs/readme.md
	rm -f $(CURDIR)/debian/roundcube-core/usr/share/roundcube/program/js/tinymce/license.txt

	# Minify JS: generate .min.js from .js source (cf. bin/jsshrink.sh)
	find $(CURDIR)/debian/roundcube-core $(CURDIR)/debian/roundcube-plugins \
		-path "$(CURDIR)/debian/roundcube-core/usr/share/roundcube/program/js/tinymce/langs" -prune -o \
		-name "*.js" \! -name "*.min.js" -type f -printf "%P\\n" -execdir sh -c \
		'exec closure-compiler --compilation_level=SIMPLE_OPTIMIZATIONS --js="$$0" \
		                       --language_in=ECMASCRIPT5 --js_output_file="$${0%.js}.min.js"' {} \;

	# Minify CSS: generate .min.css from .css source (cf. bin/cssshrink.sh)
	find $(CURDIR)/debian/roundcube-core $(CURDIR)/debian/roundcube-plugins \
		-name "*.css" \! -name "*.min.css" -type f -printf "%P\\n" \
		-execdir yui-compressor --type css -o ".css$$:.min.css" -- {} \;

	# Generate CSS from LESS sources (cf. skins/elastic/README.md)
	for p in styles/styles.less styles/print.less styles/embed.less; do \
		cd $(CURDIR)/debian/roundcube-core/usr/share/roundcube/skins/elastic && \
			lessc --compress "$$p" "$${p%.less}.css"; \
	done

	# Cf. tinymce/Gruntfile.js
	lessc --compress --js tinymce/src/skins/lightgray/main/less/desktop/Skin.less \
		$(CURDIR)/debian/roundcube-core/usr/share/roundcube/program/js/tinymce/skins/lightgray/skin.min.css
	lessc --compress tinymce/src/skins/lightgray/main/less/mobile/app/mobile-less.less \
		$(CURDIR)/debian/roundcube-core/usr/share/roundcube/program/js/tinymce/skins/lightgray/skin.mobile.min.css
	lessc --compress tinymce/src/skins/lightgray/main/less/mobile/content.less \
		$(CURDIR)/debian/roundcube-core/usr/share/roundcube/program/js/tinymce/skins/lightgray/content.mobile.min.css
	lessc --compress tinymce/src/skins/lightgray/main/less/desktop/Content.less \
		$(CURDIR)/debian/roundcube-core/usr/share/roundcube/program/js/tinymce/skins/lightgray/content.min.css
	lessc --compress tinymce/src/skins/lightgray/main/less/desktop/Content.Inline.less \
		$(CURDIR)/debian/roundcube-core/usr/share/roundcube/program/js/tinymce/skins/lightgray/content.inline.min.css

	# Plugins are in usr/share/roundcube/plugins, for each plugin
	# if there is config.inc.php.dist, we symlink a config.inc.php
	# in /etc/roundcube/plugins with some dummy content.
	for package in roundcube-core roundcube-plugins; do \
		for plugin in $(CURDIR)/debian/$${package}/usr/share/roundcube/plugins/*; do \
			dh_link -p$${package} usr/share/roundcube/plugins/$${plugin##*/} \
				var/lib/roundcube/plugins/$${plugin##*/} ; \
			if [ ! -f $${plugin}/config.inc.php.dist ]; then continue; fi ; \
			dh_installdirs -p$${package} etc/roundcube/plugins/$${plugin##*/} ; \
			(echo "<?php" ; \
			 echo "// Empty configuration for $${plugin##*/}" ; \
			 echo "// See /usr/share/roundcube/plugins/$${plugin##*/}/config.inc.php.dist for instructions" ; \
			 echo "// Check the access right of the file if you put sensitive information in it." ; \
			 echo '$$config=array();' ; \
			 echo "?>") > \
				$(CURDIR)/debian/$${package}/etc/roundcube/plugins/$${plugin##*/}/config.inc.php ; \
			dh_link -p$${package} etc/roundcube/plugins/$${plugin##*/}/config.inc.php \
				usr/share/roundcube/plugins/$${plugin##*/}/config.inc.php ; \
		done \
	done

	#setup /usr/share/bug/$(package)/control files
	for package in roundcube roundcube-core roundcube-mysql roundcube-sqlite3 roundcube-pgsql roundcube-plugins roundcube-sqlite3; do \
		install -d $(CURDIR)/debian/$${package}/usr/share/bug/$${package} ;\
		install -m 644 $(CURDIR)/debian/bug.control $(CURDIR)/debian/$${package}/usr/share/bug/$${package}/control ;\
	done

	#get rid of randomly '.gitignore' files
	find $(CURDIR)/debian/roundcube-plugins/usr/share/roundcube \( -name '._*' -o -name '.gitignore' \) -delete ;

	# password helpers is a experimental
	rm $(CURDIR)/debian/roundcube-plugins/usr/share/roundcube/plugins/password/helpers/chgsaslpasswd.c
	rm $(CURDIR)/debian/roundcube-plugins/usr/share/roundcube/plugins/password/helpers/chgvirtualminpasswd.c
	rm $(CURDIR)/debian/roundcube-plugins/usr/share/roundcube/plugins/password/helpers/chpass-wrapper.py

override_dh_fixperms:
	dh_fixperms --

	#only make scripts in bin dir executeable
	find "$(CURDIR)/debian/roundcube-core/usr/share/roundcube"     -type f -exec chmod -x -- {} +
	find "$(CURDIR)/debian/roundcube-core/usr/share/roundcube/bin" -type f -exec chmod +x -- {} +

	#make everything non executable
	find "$(CURDIR)/debian/roundcube-plugins/usr/share/roundcube" -type f -exec chmod -x -- {} +
	find "$(CURDIR)/debian/roundcube-plugins/usr/share/roundcube" -type d -empty -delete
	chmod 0755 $(CURDIR)/debian/roundcube-plugins/usr/share/roundcube/plugins/password/helpers/*.p[ly] \
	           $(CURDIR)/debian/roundcube-plugins/usr/share/roundcube/plugins/*/bin/*.sh

override_dh_installdocs:
	dh_installdocs --link-doc=roundcube-core -proundcube -proundcube-core
	dh_installdocs -proundcube-mysql -proundcube-pgsql -proundcube-sqlite3 -proundcube-plugins
	mv $(CURDIR)/debian/roundcube-core/usr/share/doc/roundcube-core/CHANGELOG \
		$(CURDIR)/debian/roundcube-core/usr/share/doc/roundcube-core/changelog
	for pkg in roundcube-core roundcube-plugins; do \
		for doc in $(CURDIR)/debian/$$pkg/usr/share/roundcube/plugins/*/README*; do \
			plugin="$${doc#"$(CURDIR)/debian/$$pkg/usr/share/roundcube/plugins/"}"; \
			plugin="$${plugin%/*}"; \
			mkdir -p "$(CURDIR)/debian/$$pkg/usr/share/doc/$$pkg/plugins/$$plugin"; \
			mv -nt "$(CURDIR)/debian/$$pkg/usr/share/doc/$$pkg/plugins/$$plugin" "$$doc"; \
		done; \
	done
	# "README.md" is in debian/roundcube-core.docs already
	rm -f  $(CURDIR)/debian/roundcube-core/usr/share/roundcube/program/lib/Roundcube/README.md

override_dh_phpcomposer:
	dh_phpcomposer --sourcedirectory=$(CURDIR)/debian/roundcube-core/usr/share/roundcube
