#!/usr/bin/make -f

JSBASE:=/usr/share/javascript
COMP:=notebook/static/components
JSUSING:=libjs-underscore libjs-backbone libjs-jed libjs-jquery libjs-jquery-ui libjs-bootstrap libjs-bootstrap-tour libjs-moment libjs-codemirror libjs-jquery-typeahead libjs-xterm libjs-requirejs libjs-requirejs-text node-react node-fbjs node-object-assign node-loose-envify
BUILTUSING:=$(foreach jspkg, $(JSUSING), $(shell dpkg-query -f '$${source:Package} (= $${source:Version}), ' -W $(jspkg)))

export PYBUILD_AFTER_INSTALL=rm -rf '{destdir}/{install_dir}/notebook/static/components' ; cp -r notebook/static/components '{destdir}/{install_dir}/notebook/static/' ; rm -rf '{destdir}/{install_dir}/notebook/tests'
export LC_ALL=C.UTF-8
# selenium tests require extra dependencies
# test_notebookapp_integration tries to invoke jupyter-notebook which isn't in the PATH when this runs
export PYBUILD_TEST_ARGS=--ignore=notebook/tests/selenium -k 'not notebookapp_integration'


%:
	dh $@ --with=python3,sphinxdoc --buildsystem=pybuild

override_dh_auto_configure:
	#backbone
	mkdir -p $(COMP)/backbone
	ln -s $(JSBASE)/backbone/backbone.min.js $(COMP)/backbone/backbone-min.js

	#bootstrap
	mkdir -p $(COMP)/bootstrap
	ln -s $(JSBASE)/bootstrap $(COMP)/bootstrap/dist
	ln -s $(JSBASE)/bootstrap/less $(COMP)/bootstrap/

	#bootstrap-tour
	mkdir -p $(COMP)/bootstrap-tour/build/js
	mkdir -p $(COMP)/bootstrap-tour/build/css
	ln -s $(JSBASE)/bootstrap-tour/bootstrap-tour.min.js $(COMP)/bootstrap-tour/build/js/
	ln -s $(JSBASE)/bootstrap-tour/bootstrap-tour.min.css $(COMP)/bootstrap-tour/build/css/

	#codemirror
	ln -s $(JSBASE)/codemirror $(COMP)/

	#es6-promise
	mkdir -p $(COMP)/es6-promise
	ln -s $(JSBASE)/es6-promise/es6-promise.min.js $(COMP)/es6-promise/promise.min.js
	ln -s $(JSBASE)/es6-promise/es6-promise.js $(COMP)/es6-promise/promise.js
	ln -s $(JSBASE)/es6-promise/es6-promise.min.js $(COMP)/es6-promise/es6-promise.min.js
	ln -s $(JSBASE)/es6-promise/es6-promise.js $(COMP)/es6-promise/es6-promise.js

	#jed
	ln -s $(JSBASE)/jed $(COMP)/

	#jquery
	ln -s $(JSBASE)/jquery $(COMP)/

	#jquery-typeahead
	mkdir -p $(COMP)/jquery-typeahead
	ln -s $(JSBASE)/jquery-typeahead $(COMP)/jquery-typeahead/dist

	#jquery-ui
	mkdir -p $(COMP)/jquery-ui/themes/smoothness
	ln -s $(JSBASE)/jquery-ui/jquery-ui.min.js $(COMP)/jquery-ui/
	ln -s $(JSBASE)/jquery-ui/themes/base/jquery-ui.min.css $(COMP)/jquery-ui/themes/smoothness/
	ln -s $(JSBASE)/jquery-ui/themes/base/images $(COMP)/jquery-ui/themes/smoothness/

	#marked
	mkdir -p $(COMP)/marked/lib
	ln -s $(JSBASE)/marked/marked.js $(COMP)/marked/lib/

	#mathjax
	ln -s $(JSBASE)/mathjax $(COMP)/MathJax

	#moment
	mkdir -p $(COMP)/moment/min
	ln -s $(JSBASE)/moment/moment.js $(COMP)/moment/
	ln -s $(JSBASE)/moment/moment-with-locales.js $(COMP)/moment/
	ln -s $(JSBASE)/moment/moment-with-locales.min.js $(COMP)/moment/min/moment-with-locales.js

	#requirejs
	ln -s $(JSBASE)/requirejs $(COMP)/

	#requirejs-plugins
	cp -r debian/missing-sources/requirejs-plugins $(COMP)/

	#requirejs-text
	mkdir -p $(COMP)/requirejs-text
	ln -s $(JSBASE)/requirejs/text.js $(COMP)/requirejs-text/

	#xterm.js
	mkdir -p $(COMP)/xterm.js $(COMP)/xterm.js-css $(COMP)/xterm.js-fit
	ln -s $(JSBASE)/xterm/xterm.js $(COMP)/xterm.js/index.js
	ln -s $(JSBASE)/xterm/xterm.css $(COMP)/xterm.js-css/index.css
	ln -s $(JSBASE)/xterm/addons/fit/fit.js $(COMP)/xterm.js-fit/index.js

	#text-encoding
	mkdir -p $(COMP)/text-encoding/lib
	ln -s $(JSBASE)/text-encoding/encoding.js $(COMP)/text-encoding/lib/

	#underscore
	mkdir -p $(COMP)/underscore
	ln -s $(JSBASE)/underscore/underscore.min.js $(COMP)/underscore/underscore-min.js

	#font-awesome
	ln -s /usr/share/fonts-font-awesome $(COMP)/font-awesome

	#google-caja
	mkdir -p $(COMP)/google-caja
	cat debian/missing-sources/css-defs.js \
	    debian/missing-sources/csslexer.js \
	    debian/missing-sources/uri.js \
	    debian/missing-sources/sanitizecss.js \
	    debian/missing-sources/cssparser.js \
	    debian/missing-sources/html4-defs.js \
	    debian/missing-sources/html-sanitizer.js \
	    > debian/missing-sources/html-css-sanitizer-bundle.js
	uglifyjs -o $(COMP)/google-caja/html-css-sanitizer-minified.js \
	            debian/missing-sources/html-css-sanitizer-bundle.js

    #react
	mkdir -p $(COMP)/react
	# copy these files, since there isn't a libjs-react, which means we'd pull in the dependencies
	# of a full nodejs environment
	cp /usr/share/nodejs/react/umd/react.production.min.js $(COMP)/react/react.production.min.js
	cp /usr/share/nodejs/react-dom/umd/react-dom.production.min.js $(COMP)/react/react-dom.production.min.js

	#create-react-class
	mkdir -p $(COMP)/create-react-class
	cd debian/missing-sources/create-react-class && NODE_ENV=production webpack
	cp debian/missing-sources/create-react-class/dist/create-react-class.min.js $(COMP)/create-react-class/index.js

	dh_auto_configure


override_dh_auto_build:
	dh_auto_build
ifeq (,$(filter nodoc,$(DEB_BUILD_PROFILES)))
	PYTHONPATH=. http_proxy='127.0.0.9' https_proxy='127.0.0.9' python3 -m sphinx -N -bhtml docs/source/ build/html
endif

override_dh_auto_clean:
	dh_auto_clean
	$(RM) notebook/static/*/js/main.*.js
	$(RM) notebook/static/*/js/main.*.js.map

override_dh_gencontrol:
	echo "js:Built-Using=$(BUILTUSING)" >> debian/python3-notebook.substvars
	dh_gencontrol

override_dh_installchangelogs:
	dh_installchangelogs -k docs/source/changelog.rst

override_dh_installsystemduser:
	dh_installsystemduser --no-enable
