#!/usr/bin/make -f # generate documentation unless nodoc requested ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS))) DOCS = README.html README.txt endif NODE_ENV = NO_COLOR=1 NODE_PATH=debian/node_modules NODE = $(NODE_ENV) node ESLINT = $(NODE_ENV) eslint MOCHA = $(NODE_ENV) mocha --no-timeout MOCHA_TAP := $(MOCHA) --reporter tap # normalize output with TAP where possible unless terse requested ifeq (,$(filter terse,$(DEB_BUILD_OPTIONS))) ESLINT += --format tap MOCHA += --reporter tap else ESLINT += --format unix MOCHA += --reporter dot --no-colors endif # Work around ESLint seemingly not supporting NODE_PATH ESLINT_EXCLUDES += \ tests/lib/configs/_rules.js # Work around missing node modules MOCHA_EXCLUDES += \ tests/lib/configs/ts.js \ tests/lib/configs/vue.js # Work around misc. breakage MOCHA_ISOLATE += \ tests/lib/configs/es5.js \ tests/lib/configs/eslint-plugin.js \ tests/lib/configs/node.js override_dh_auto_clean: rm -rf debian/node_modules override_dh_clean: dh_clean -- $(DOCS) override_dh_auto_configure: mkdir -p debian/node_modules/@mysticatea ln --force --symbolic ../../.. debian/node_modules/@mysticatea/eslint-plugin override_dh_auto_build: $(DOCS) $(NODE) scripts/generate-browser-globals $(NODE) scripts/generate-configs $(NODE) scripts/generate-rules ifeq (,$(filter pkg.eslint.stage1,$(DEB_BUILD_PROFILES))) $(ESLINT) --fix lib/configs/_browser-globals.js lib/configs.js lib/rules.js endif # TODO: fix remaining test failures override_dh_auto_test: ifeq (,$(filter pkg.eslint.stage1,$(DEB_BUILD_PROFILES))) $(ESLINT) $(patsubst %,--ignore-pattern %,$(ESLINT_EXCLUDES)) \ lib scripts tests endif $(MOCHA) $(patsubst %,--exclude %,$(MOCHA_EXCLUDES) $(MOCHA_ISOLATE)) \ "tests/lib/**/*.js" $(MOCHA_TAP) $(patsubst %,--exclude %,$(MOCHA_EXCLUDES)) \ $(MOCHA_ISOLATE) \ | debian/tap-todo \ "'es5.js' should include existing rule 'multiline-comment-style'." \ "'es5.js' should include existing rule 'no-misleading-character-class'." \ "'\+eslint-plugin.js' should include existing rule '\@mysticatea/eslint-plugin/prefer-object-rule'." \ "'\+eslint-plugin.js' should include existing rule '\@mysticatea/eslint-plugin/require-meta-docs-description'." \ "'\+eslint-plugin.js' should include existing rule '\@mysticatea/eslint-plugin/require-meta-schema'." \ "'\+node.js' should include existing rule '\@mysticatea/node/callback-return'." \ "'\+node.js' should include existing rule '\@mysticatea/node/global-require'." \ "'\+node.js' should include existing rule '\@mysticatea/node/handle-callback-err'." \ "'\+node.js' should include existing rule '\@mysticatea/node/no-mixed-requires'." \ "'\+node.js' should include existing rule '\@mysticatea/node/no-new-require'." \ "'\+node.js' should include existing rule '\@mysticatea/node/no-path-concat'." \ "'\+node.js' should include existing rule '\@mysticatea/node/no-process-env'." \ "'\+node.js' should include existing rule '\@mysticatea/node/no-process-exit'." \ "'\+node.js' should include existing rule '\@mysticatea/node/no-restricted-import'." \ "'\+node.js' should include existing rule '\@mysticatea/node/no-restricted-require'." \ "'\+node.js' should include existing rule '\@mysticatea/node/no-sync'." override_dh_installdocs: dh_installdocs --all -- $(DOCS) %.html: %.md cmark-gfm $< > $@ %.txt: %.md cmark-gfm --to plaintext $< > $@ %: dh $@