#!/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

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

	# Convert .js back to min.js
	for js in $$(find $(CURDIR)/debian/roundcube-plugins-extra -type f -name '*.js' -not -name '*.min.js' -print); do \
		closure-compiler --compilation_level=SIMPLE_OPTIMIZATIONS --js="$$js" \
			--language_in=ECMASCRIPT5 --js_output_file="$${js%.*}.min.js" ; \
	done

	# Build own .css from their .less sources
	for less in $$(find $(CURDIR)/debian/roundcube-plugins-extra -type f -name '*.less' -print); do \
		[ -e "$${less%.less}.min.css" ] && css="$${less%.less}.min.css" || css=$${less%.less}.css; \
		( cd /usr/share/roundcube/skins/elastic && lessc --include-path=/usr/share/roundcube/skins \
				--relative-urls --compress "$$less" >"$$css" ); \
	done

	# 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
