зеркало из https://github.com/mozilla/gecko-dev.git
67 строки
2.7 KiB
Python
67 строки
2.7 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
|
|
|
|
from mach.decorators import (
|
|
CommandArgument,
|
|
CommandProvider,
|
|
Command,
|
|
)
|
|
from mach.base import (
|
|
FailedCommandError,
|
|
)
|
|
from mozbuild.base import MachCommandBase
|
|
|
|
|
|
@CommandProvider
|
|
class CompareLocales(MachCommandBase):
|
|
"""Run compare-locales."""
|
|
|
|
@Command('compare-locales', category='build',
|
|
description='Run source checks on a localization.')
|
|
@CommandArgument('config_paths', metavar='l10n.toml', nargs='+',
|
|
help='TOML or INI file for the project')
|
|
@CommandArgument('l10n_base_dir', metavar='l10n-base-dir',
|
|
help='Parent directory of localizations')
|
|
@CommandArgument('locales', nargs='*', metavar='locale-code',
|
|
help='Locale code and top-level directory of '
|
|
'each localization')
|
|
@CommandArgument('-q', '--quiet', action='count',
|
|
default=0, help='''Show less data.
|
|
Specified once, don't show obsolete entities. Specified twice, also hide
|
|
missing entities. Specify thrice to exclude warnings and four times to
|
|
just show stats''')
|
|
@CommandArgument('-m', '--merge',
|
|
help='''Use this directory to stage merged files''')
|
|
@CommandArgument('--validate', action='store_true',
|
|
help='Run compare-locales against reference')
|
|
@CommandArgument('--json',
|
|
help='''Serialize to JSON. Value is the name of
|
|
the output file, pass "-" to serialize to stdout and hide the default output.
|
|
''')
|
|
@CommandArgument('-D', action='append', metavar='var=value',
|
|
default=[], dest='defines',
|
|
help='Overwrite variables in TOML files')
|
|
@CommandArgument('--full', action="store_true",
|
|
help="Compare projects that are disabled")
|
|
@CommandArgument('--return-zero', action="store_true",
|
|
help="Return 0 regardless of l10n status")
|
|
def compare(self, **kwargs):
|
|
from compare_locales.commands import CompareLocales
|
|
|
|
class ErrorHelper(object):
|
|
'''Dummy ArgumentParser to marshall compare-locales
|
|
commandline errors to mach exceptions.
|
|
'''
|
|
def error(self, msg):
|
|
raise FailedCommandError(msg)
|
|
|
|
def exit(self, message=None, status=0):
|
|
raise FailedCommandError(message, exit_code=status)
|
|
|
|
cmd = CompareLocales()
|
|
cmd.parser = ErrorHelper()
|
|
return cmd.handle(**kwargs)
|