#!/usr/bin/make -f

INSTALL_PLUGIN_DIR = $(CURDIR)/debian/roundcube-plugins-extra/usr/share/roundcube/plugins

update:
	$(CURDIR)/debian/scripts/plugins.py

%:
	dh $@

override_dh_fixperms:
	dh_fixperms
	find $(INSTALL_PLUGIN_DIR) \
		-type f \! -name "*.sh" -print0 | xargs -r0 chmod -x

override_dh_auto_test:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	dh_auto_test
	$(CURDIR)/debian/scripts/check-long-description
endif

override_dh_install:
	# Install plugins
	. $(CURDIR)/debian/scripts/plugin-functions.sh; \
	for plugin in $$(get_plugins); do \
		installName=$$(get_plugin_field $$plugin InstallName); \
		dh_install --exclude=LICENSE --exclude=INSTALL \
			"$$plugin/*" usr/share/roundcube/plugins/$$installName; \
	done

	# Generate thunderbird-labels/tb_label.js from its .coffee sources
	cd $(CURDIR)/debian/roundcube-plugins-extra/usr/share/roundcube/plugins/thunderbird_labels && ./coffee2js.sh

	# Minify JS: generate .min.js from .js source
	find $(CURDIR)/debian/roundcube-plugins-extra \
		-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
	find $(CURDIR)/debian/roundcube-plugins-extra \
		-name "*.css" \! -name "*.min.css" -type f -printf "%P\\n" \
		-execdir yui-compressor --type css -o ".css$$:.min.css" -- {} \;

	# Generate CSS from LESS sources (temporarily link /usr/share/roundcube/skins to resolve dependencies)
	ln -vsT /usr/share/roundcube/skins "$(CURDIR)/debian/roundcube-plugins-extra/usr/share/roundcube/skins"
	cd $(CURDIR)/debian/roundcube-plugins-extra/usr/share/roundcube/plugins; \
	for p in contextmenu/skins/elastic/contextmenu.less \
			 sauserprefs/skins/elastic/sauserprefs.less \
			 sauserprefs/skins/elastic/tabstyles.less; do \
		lessc --relative-urls --compress "$$p" "$${p%.less}.min.css"; \
	done
	rm -v "$(CURDIR)/debian/roundcube-plugins-extra/usr/share/roundcube/skins"

	# Plugins are in usr/share/roundcube/plugins, for each plugin with a
	# config.inc.php[.-]dist, we symlink a config.inc.php in
	# /etc/roundcube/plugins with some dummy content.
	# Note: We assume that the plugin loads its configuration from a
	# 'config.inc.php' file under the same directory holding the default
	# configuration file (normally config.inc.php.dist but
	# message-highlight calls it config.inc.php-dist).  If that file is
	# directly under the plugin directory, such as for html5_notifier,
	# then we assume the plugin loads its configuration with
	# $this->load_config('path/to/config.inc.php').
	. $(CURDIR)/debian/scripts/plugin-functions.sh; \
	for plugin in $$(get_plugins); do \
	        installName=$$(get_plugin_field $$plugin InstallName); \
	        dh_link usr/share/roundcube/plugins/$$installName \
	                var/lib/roundcube/plugins/$$installName ; \
            dist=$$(find "$(INSTALL_PLUGIN_DIR)/$$installName" -type f -name "config.inc.php[.-]dist") ; \
            [ -f "$$dist" ] || continue ; \
	        dh_installdirs etc/roundcube/plugins/$$installName ; \
            dist2="usr/share/roundcube/plugins/$${dist#"$(INSTALL_PLUGIN_DIR)/"}"; \
	        (echo "<?php" ; \
	         echo "// Empty configuration for $$installName" ; \
	         echo "// See /$$dist2 for instructions") > \
	                $(CURDIR)/debian/roundcube-plugins-extra/etc/roundcube/plugins/$$installName/config.inc.php ; \
	        dh_link etc/roundcube/plugins/$$installName/config.inc.php "$${dist2%[.-]dist}" ; \
	done
	dh_install

override_dh_installdocs:
	dh_installdocs
	. $(CURDIR)/debian/scripts/plugin-functions.sh; \
	for plugin in $$(get_plugins); do \
	        installName=$$(get_plugin_field $$plugin InstallName); \
		for file in CHANGELOG CHANGES Changelog; do \
			if [ -f "$(INSTALL_PLUGIN_DIR)/$$installName/$$file" ]; then \
				mv -vT "$(INSTALL_PLUGIN_DIR)/$$installName/$$file" "$(CURDIR)/debian/roundcube-plugins-extra/usr/share/doc/roundcube-plugins-extra/changelog.$$installName"; \
			fi; \
		done; \
		for file in README README.md readme.md MANUAL.md; do \
			if [ -f "$(INSTALL_PLUGIN_DIR)/$$installName/$$file" ]; then \
				mv -vT "$(INSTALL_PLUGIN_DIR)/$$installName/$$file" "$(CURDIR)/debian/roundcube-plugins-extra/usr/share/doc/roundcube-plugins-extra/$$installName.$$file"; \
			fi; \
		done; \
	done
