gecko/python/compare-locales/mach_commands.py
Mike Hommey 6ee628d425 Bug 1147283 - Replace mozpack.path with mozpath. r=mshal
Back when mozpack.path was added, it was used as:

  import mozpack.path
  mozpack.path.func()

Nowadays, the common idiom is:

  import mozpack.path as mozpath
  mozpath.func()

because it's shorter.

$ git grep mozpath\\. | wc -l
423
$ git grep mozpack.path\\. | wc -l
123

This change was done with:
$ git grep -l mozpack.path\\. | xargs sed -i 's/mozpack\.path\./mozpath./g'
$ git grep -l 'import mozpack.path$' | xargs sed -i 's/import mozpack.path$/\0 as mozpath/'
$ (pat='import mozpack.path as mozpath'; git grep -l "$pat" | xargs sed -i "1,/$pat/b;/$pat/d")
2015-03-27 08:13:16 +09:00

82 lines
2.8 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 print_function, unicode_literals
from mach.decorators import (
CommandArgument,
CommandProvider,
Command,
)
from mozbuild.base import (
MachCommandBase,
)
import mozpack
MERGE_HELP = '''Directory to merge to. Will be removed to before running
the comparison. Default: $(OBJDIR)/($MOZ_BUILD_APP)/locales/merge-$(AB_CD)
'''.lstrip()
@CommandProvider
class CompareLocales(MachCommandBase):
"""Run compare-locales."""
@Command('compare-locales', category='testing',
description='Run source checks on a localization.')
@CommandArgument('--l10n-ini',
help='l10n.ini describing the app. ' +
'Default: $(MOZ_BUILD_APP)/locales/l10n.ini')
@CommandArgument('--l10n-base',
help='Directory with the localizations. ' +
'Default: $(L10NBASEDIR)')
@CommandArgument('--merge-dir',
help=MERGE_HELP)
@CommandArgument('locales', nargs='+', metavar='ab_CD',
help='Locale codes to compare')
def compare(self, l10n_ini=None, l10n_base=None, merge_dir=None,
locales=None):
from compare_locales.paths import EnumerateApp
from compare_locales.compare import compareApp
# check if we're configured and use defaults from there
# otherwise, error early
try:
self.substs # explicitly check
if not l10n_ini:
l10n_ini = mozpath.join(
self.topsrcdir,
self.substs['MOZ_BUILD_APP'],
'locales', 'l10n.ini'
)
if not l10n_base:
l10n_base = mozpath.join(
self.topsrcdir,
self.substs['L10NBASEDIR']
)
except Exception:
if not l10n_ini or not l10n_base:
print('Specify --l10n-ini and --l10n-base or run configure.')
return 1
if not merge_dir:
try:
# self.substs is raising an Exception if we're not configured
# don't merge if we're not
merge_dir = mozpath.join(
self.topobjdir,
self.substs['MOZ_BUILD_APP'],
'locales', 'merge-{ab_CD}'
)
except Exception:
pass
app = EnumerateApp(l10n_ini, l10n_base, locales)
observer = compareApp(app, merge_stage=merge_dir,
clobber=True)
print(observer.serialize().encode('utf-8', 'replace'))