#!/usr/bin/make -f

include /usr/share/dpkg/pkg-info.mk

# detect if build targets experimental suite (or is a draft)
DEB_SUITE_EXP = $(filter experimental% UNRELEASED,$(DEB_DISTRIBUTION))

# generate documentation unless nodoc requested
ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS)))
DOCS = README.html README.txt
CHANGELOGS = CHANGELOG.html CHANGELOG.txt
endif

# normalize output with TAP where possible unless terse requested
ifeq (,$(filter terse,$(DEB_BUILD_OPTIONS)))
MOCHA = mocha --reporter tap
else
MOCHA = mocha --reporter dot --no-colors
endif

# Work around missing node module "typescript-eslint-parser"
TEST_EXCLUDES += tests/typescript.js

# Isolate known broken tests for isolated checking
TEST_BROKEN += \
 tests/es6-destructuring-assignments.js

override_dh_auto_build: $(DOCS) $(CHANGELOGS)

override_dh_auto_test:
ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
	$(MOCHA) $(filter-out $(TEST_EXCLUDES) $(TEST_BROKEN),\
		$(wildcard tests/*.js))
	$(strip $(MOCHA) $(TEST_BROKEN) \
		$(if $(DEB_SUITE_EXP),|| true))
endif

override_dh_installdocs:
	dh_installdocs --all -- $(DOCS)

override_dh_installchangelogs:
	dh_installchangelogs -- $(CHANGELOGS)

dh_clean:
	dh_clean -- $(DOCS) $(CHANGELOGS)

%.html: %.md
	pandoc --from gfm-raw_html --to html --standalone --output $@ $<

%.txt: %.md
	pandoc --from gfm-raw_html --to plain --output $@ $<

%:
	dh $@
