#!/usr/bin/make -f

include /usr/share/javahelper/java-vars.mk

MDWN_DOCS = $(patsubst %.md,%.html,$(wildcard $(CURDIR)/*.md))

PRODUCED_JAR=honeysql.jar
export CLASSPATH=/usr/share/java/clojure.jar

%:
	dh $@ --with javahelper --with jh_maven_repo_helper

override_jh_build: $(MDWN_DOCS)
	jar cf $(PRODUCED_JAR) -C src .
	mkdir -p $(CURDIR)/doc/html && mv $(CURDIR)/*.html $(CURDIR)/doc/html

override_jh_classpath:
	jh_classpath $(PRODUCED_JAR)

override_jh_clean:
	jh_clean
	rm -f $(CURDIR)/$(PRODUCED_JAR)
	rm -rf $(CURDIR)/doc/html

# Tests can't run in a random order (#907765):
override_dh_auto_test: ORDERED_TESTS=honeysql/format_test.cljc honeysql/core_test.cljc
override_dh_auto_test: EXPECTED=$(shell echo "$(ORDERED_TESTS)" | sed 's/ /\n/g' | sort | xargs)
override_dh_auto_test: FOUND=$(shell cd test && find -name '*.cljc' | sed 's,^[.]/,,' | sort | xargs)
override_dh_auto_test:
	# Make sure to detect when tests appear or disappear:
	@if [ "$(FOUND)" != "$(EXPECTED)" ]; then \
		echo "E: sanity check failed, available tests don't match known tests:"; \
		echo "    - found:    $(FOUND)"; \
		echo "    - expected: $(EXPECTED)"; \
		echo "=> Please update ORDERED_TESTS in debian/rules accordingly"; \
		exit 1; \
	fi
	# Run tests:
	(cd test && clojure -cp $(CURDIR)/$(PRODUCED_JAR) $(ORDERED_TESTS))

%.html:%.md
	cat debian/header.html > $@
	sed -i'' -e 's#@TITLE@#$(shell head -n 1 $< | sed 's/^#*\s*//')#g' $@
	markdown $< >> $@
	cat debian/footer.html >> $@
