Running Linters LocallyΒΆ

You can run all the various linters in the tree using the mach lint command. Simply pass in the directory or file you wish to lint (defaults to current working directory):

./mach lint path/to/files

Multiple paths are allowed:

./mach lint path/to/foo.js path/to/bar.py path/to/dir

Mozlint will automatically determine which types of files exist, and which linters need to be run against them. For example, if the directory contains both JavaScript and Python files then mozlint will automatically run both ESLint and Flake8 against those files respectively.

To restrict which linters are invoked manually, pass in -l/--linter:

./mach lint -l eslint path/to/files

Finally, mozlint can lint the files touched by a set of revisions or the working directory using the -r/--rev and -w/--workdir arguments respectively. These work both with mercurial and git. In the case of --rev the value is passed directly to the underlying vcs, so normal revision specifiers will work. For example, say we want to lint all files touched by the last three commits. In mercurial, this would be:

./mach lint -r ".~2::."

In git, this would be:

./mach lint -r "HEAD~2 HEAD"