gecko-dev/tools/compare-locales/mach_commands.py

56 строки
2.1 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,
)
@CommandProvider
class CompareLocales(object):
"""Run compare-locales."""
@Command('compare-locales', category='testing',
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('-m', '--merge',
help='''Use this directory to stage merged files''')
@CommandArgument('-D', action='append', metavar='var=value',
default=[], dest='defines',
help='Overwrite variables in TOML files')
@CommandArgument('--unified', action="store_true",
help="Show output for all projects unified")
@CommandArgument('--full', action="store_true",
help="Compare projects that are disabled")
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)