
ESLint can now be run from Bazel using... > bazel test //polygerrit-ui/app:lint_test ...or the maybe more user-friendly... > bazel test //polygerrit-ui/app:lint_test --test_output errors This script has several limitations, and is meant mostly as an MVP while the PG codebase itself still doesn't meet the linter's standards. - It is not hermetic (it cannot download and run the necessary binaries in a sandboxed environment) - The user cannot specify which files they want to test - The user cannot specify whether they want to fix any errors automatically - The user cannot pass any other arbitrary flags to ESLint - CI does not run this test when applying the Verified label These issues will all be fixed in later changes. Bug: Issue 6163 Change-Id: I14b8d165600d6c3f9394c2bb6ec520e29e40b308
23 lines
795 B
Bash
Executable File
23 lines
795 B
Bash
Executable File
#!/bin/sh
|
|
|
|
set -ex
|
|
|
|
eslint_bin=$(which npm)
|
|
if [[ -z "$eslint_bin" ]]; then
|
|
echo "NPM must be on the path."
|
|
exit 1
|
|
fi
|
|
|
|
eslint_bin=$(which eslint)
|
|
eslint_config=$(npm list -g | grep -c eslint-config-google)
|
|
eslint_plugin=$(npm list -g | grep -c eslint-plugin-html)
|
|
if [[ -z "$eslint_bin" ]] || [[ eslint_config -eq "0" ]] || [[ eslint_plugin -eq "0" ]]; then
|
|
echo "You must install ESLint and its dependencies from NPM."
|
|
echo "> npm install -g eslint eslint-config-google eslint-plugin-html"
|
|
echo "For more information, view the README:"
|
|
echo "https://gerrit.googlesource.com/gerrit/+/master/polygerrit-ui/#Style-guide"
|
|
exit 1
|
|
fi
|
|
|
|
${eslint_bin} --ignore-pattern 'bower_components/' --ignore-pattern 'gr-linked-text' --ignore-pattern 'scripts/vendor' --ext .html,.js .
|