mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-25 19:25:43 +00:00
021f1ff90a
MozReview-Commit-ID: 4KK2GZK7xul --HG-- rename : python/mozlint/test/linters/badreturncode.lint => python/mozlint/test/linters/badreturncode.lint.py rename : python/mozlint/test/linters/explicit_path.lint => python/mozlint/test/linters/explicit_path.lint.py rename : python/mozlint/test/linters/external.lint => python/mozlint/test/linters/external.lint.py rename : python/mozlint/test/linters/invalid_exclude.lint => python/mozlint/test/linters/invalid_exclude.lint.py rename : python/mozlint/test/linters/invalid_include.lint => python/mozlint/test/linters/invalid_include.lint.py rename : python/mozlint/test/linters/invalid_type.lint => python/mozlint/test/linters/invalid_type.lint.py rename : python/mozlint/test/linters/missing_attrs.lint => python/mozlint/test/linters/missing_attrs.lint.py rename : python/mozlint/test/linters/missing_definition.lint => python/mozlint/test/linters/missing_definition.lint.py rename : python/mozlint/test/linters/raises.lint => python/mozlint/test/linters/raises.lint.py rename : python/mozlint/test/linters/regex.lint => python/mozlint/test/linters/regex.lint.py rename : python/mozlint/test/linters/string.lint => python/mozlint/test/linters/string.lint.py rename : python/mozlint/test/linters/structured.lint => python/mozlint/test/linters/structured.lint.py rename : tools/lint/eslint.lint => tools/lint/eslint.lint.py rename : tools/lint/flake8.lint => tools/lint/flake8.lint.py rename : tools/lint/wpt.lint => tools/lint/wpt.lint.py rename : tools/lint/wpt_manifest.lint => tools/lint/wpt_manifest.lint.py extra : rebase_source : 97de88e0328e91347192672b848b286df1904ade
63 lines
2.2 KiB
Python
63 lines
2.2 KiB
Python
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
from __future__ import absolute_import, print_function, unicode_literals
|
|
|
|
import argparse
|
|
import os
|
|
|
|
from mozbuild.base import (
|
|
MachCommandBase,
|
|
)
|
|
|
|
|
|
from mach.decorators import (
|
|
CommandArgument,
|
|
CommandProvider,
|
|
Command,
|
|
)
|
|
|
|
|
|
here = os.path.abspath(os.path.dirname(__file__))
|
|
|
|
|
|
def setup_argument_parser():
|
|
from mozlint import cli
|
|
return cli.MozlintParser()
|
|
|
|
|
|
@CommandProvider
|
|
class MachCommands(MachCommandBase):
|
|
|
|
@Command(
|
|
'lint', category='devenv',
|
|
description='Run linters.',
|
|
parser=setup_argument_parser)
|
|
def lint(self, *runargs, **lintargs):
|
|
"""Run linters."""
|
|
from mozlint import cli
|
|
lintargs['exclude'] = ['obj*']
|
|
cli.SEARCH_PATHS.append(here)
|
|
self._activate_virtualenv()
|
|
return cli.run(*runargs, **lintargs)
|
|
|
|
@Command('eslint', category='devenv',
|
|
description='Run eslint or help configure eslint for optimal development.')
|
|
@CommandArgument('paths', default=None, nargs='*',
|
|
help="Paths to file or directories to lint, like "
|
|
"'browser/' Defaults to the "
|
|
"current directory if not given.")
|
|
@CommandArgument('-s', '--setup', default=False, action='store_true',
|
|
help='Configure eslint for optimal development.')
|
|
@CommandArgument('-b', '--binary', default=None,
|
|
help='Path to eslint binary.')
|
|
@CommandArgument('--fix', default=False, action='store_true',
|
|
help='Request that eslint automatically fix errors, where possible.')
|
|
@CommandArgument('extra_args', nargs=argparse.REMAINDER,
|
|
help='Extra args that will be forwarded to eslint.')
|
|
def eslint(self, paths, extra_args=[], **kwargs):
|
|
self._mach_context.commands.dispatch('lint', self._mach_context,
|
|
linters=['eslint'], paths=paths,
|
|
argv=extra_args, **kwargs)
|