#!/usr/bin/make -f
# -*- makefile -*-

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

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

JESTDIR     = $(CURDIR)/debian/jest

%:
	dh $@

override_dh_auto_build:
	dh_auto_build --buildsystem=nodejs
	NODE_PATH=debian/build_modules node ./scripts/build.js
	for p in pretty-format jest-diff; do \
		rm -f node_modules/$$p; \
		cp -a packages/$$p/ node_modules; \
		cp debian/nodejs/types-$$p/* node_modules/$$p/build/; \
	done
	node ./scripts/buildTs.js
	perl -i -pe "s#/usr/lib/nodejs#/usr/lib/nodejs','/usr/lib/"$(DEB_HOST_MULTIARCH)"/nodejs#" packages/jest-resolve/build/index.js
	set -e; for f in jest jest-repl jest-runtime; do \
		help2man packages/$$f/bin/$$f.js --no-discard-stderr --no-info >$$f.1; \
	done

override_dh_auto_install:
	dh_auto_install --buildsystem=nodejs
	mkdir -p debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/nodejs
	mv debian/tmp/usr/share/nodejs/jest-resolve debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/nodejs/

override_dh_install:
	dh_install
	# Remove separated package files from main one (jest)
	if [ -e $(JESTDIR) ]; then \
		cd $(JESTDIR) && rm -rf `cat ../../debian/node-*.install|sed 's/.* //g'`; \
	fi
	mkdir -p debian/debbundle-docs
	for mod in `cat debian/node-jest-debbundle.install|sed -e 's/.*nodejs\///'`; do \
		echo "Looking for $$mod docs"; \
		if [ -e packages/$$mod ]; then \
			cp packages/$$mod/README.md debian/debbundle-docs/README.$$mod.md; \
		else \
			find $$mod/ -maxdepth 1 -iname 'readme*' -exec cp '{}' debian/debbundle-docs/README.$$mod.md ';' ; \
		fi \
	done

override_dh_installexamples:
	dh_installexamples
	if [ -e $(JESTDIR) ]; then \
		find $(JESTDIR) -name .gitignore -delete; \
	fi

override_dh_gencontrol:
	JESTPROVIDES=`grep -sh 'nodejs:Provides' debian/*.substvars|head -n1|sed -e 's/nodejs:Provides=//'`; \
	set -e; \
	for m in `cd debian && ls node*.install`; do \
		bundle=''; \
		mod=$${m%.install}; \
		for p in `cat debian/$$mod.install`; do \
			pversion=`jq -r .version node_modules/$${p#*nodejs}/package.json` ; \
			pname=`jq -r .name node_modules/$${p#*nodejs}/package.json` ; \
			pname=node-`echo $$pname|sed -e 's/^.types./types-/'`; \
			echo "found $$pname in $$mod"; \
			bundle="$$pname (=$$pversion-1), $$bundle"; \
			JESTPROVIDES=`echo $$JESTPROVIDES|sed -e "s/ $$pname [^,]*,//"`; \
		done; \
		echo dh_gencontrol -p$$mod -- -Vjest:depsProvides="$$bundle"; \
		dh_gencontrol -p$$mod -- -Vjest:depsProvides="$$bundle"; \
	done; \
	echo "jest Provides value: $$JESTPROVIDES"; \
	dh_gencontrol -pjest -- -Vjest:Provides="$$JESTPROVIDES"

override_dh_auto_clean:
	dh_auto_clean --buildsystem=nodejs
	find . -name build|grep -v debian |xargs rm -rf

override_dh_fixperms:
	dh_fixperms
	if [ -e $(CURDIR)/debian/node-jest-debbundle ]; then \
		chmod +x $(CURDIR)/debian/node-jest-debbundle/usr/share/nodejs/import-local/fixtures/cli.js; \
		chmod +x $(CURDIR)/debian/node-jest-debbundle/usr/share/nodejs/is-ci/bin.js; \
	fi
	if [ -e $(JESTDIR) ]; then \
		chmod +x $(JESTDIR)/usr/share/nodejs/jest/bin/jest.js; \
		chmod +x $(JESTDIR)/usr/share/nodejs/jest-cli/bin/jest.js; \
		chmod +x $(JESTDIR)/usr/share/nodejs/jest-repl/bin/jest-repl.js; \
		chmod +x $(JESTDIR)/usr/share/nodejs/jest-repl/build/cli/index.js; \
		chmod +x $(JESTDIR)/usr/share/nodejs/jest-runtime/bin/jest-runtime.js; \
	fi
