42 lines
1.3 KiB
ReStructuredText
42 lines
1.3 KiB
ReStructuredText
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):
|
|
|
|
.. parsed-literal::
|
|
|
|
./mach lint path/to/files
|
|
|
|
Multiple paths are allowed:
|
|
|
|
.. parsed-literal::
|
|
|
|
./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``:
|
|
|
|
.. parsed-literal::
|
|
|
|
./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:
|
|
|
|
.. parsed-literal::
|
|
|
|
./mach lint -r ".~2::."
|
|
|
|
In git, this would be:
|
|
|
|
.. parsed-literal::
|
|
|
|
./mach lint -r "HEAD~2 HEAD"
|