HTML2MARKDOWN ?= html2text PERL ?= perl PERLFLAGS ?= FMT ?= fmt FMTFLAGS ?= -80 EXPAND ?= expand EXPANDFLAGS ?= GIT? = git GITFLAGS ?= PYTHON ?= python3 PYTHONFLAGS ?= CURL ?= curl CURLFLAGS ?= JAVA ?= java JAVAFLAGS ?= VNU_TEST_REPO ?= git@github.com:validator/tests.git ITS_REPO ?= git@github.com:w3c/its-2.0-testsuite-inputdata.git .PHONY: .FORCE all: README.md messages.json README.md: index.html $(HTML2MARKDOWN) $(HTML2MARKDOWNFLAGS) $< \ | $(PERL) $(PERLFLAGS) -pe 'undef $$/; s/(\s+\n)+/\n\n/g' \ | $(PERL) $(PERLFLAGS) -pe 'undef $$/; s/(\n\n\n)+/\n/g' \ | $(FMT) $(FMTFLAGS) \ | $(PERL) $(PERLFLAGS) -pe 'undef $$/; s/ +(\[[0-9]+\]:)\n +/\n $$1 /g' \ | $(EXPAND) $(EXPANDFLAGS) > $@ messages.json: .FORCE $(CURL) $(CURLFLAGS) -O -L \ https://github.com/validator/validator/releases/download/latest/vnu.jar $(JAVA) $(JAVAFLAGS) -cp vnu.jar nu.validator.client.TestRunner \ --ignore=html-its --write-messages $@ $(PYTHON) $(PYTHONFLAGS) -mjson.tool --sort-keys $@ > $@.tmp mv $@.tmp $@ test: .FORCE $(CURL) $(CURLFLAGS) -O -L \ https://github.com/validator/validator/releases/download/jar/vnu.jar $(JAVA) $(JAVAFLAGS) -cp vnu.jar nu.validator.client.TestRunner \ --ignore=html-its messages.json push: cd .. \ && git push $(VNU_TEST_REPO) `git subtree split -P conformance-checkers`:master --force \ && cd - its-push: cd ..\ && $(GIT) subtree push -P conformance-checkers/html-its/ $(ITS_REPO) master \ && cd - its-pull: cd .. \ && $(GIT) pull -s subtree $(ITS_REPO) master \ && cd -