diff --git a/testing/mozharness/scripts/b2g_desktop_multilocale.py b/testing/mozharness/scripts/b2g_desktop_multilocale.py deleted file mode 100755 index b2d43931a19f..000000000000 --- a/testing/mozharness/scripts/b2g_desktop_multilocale.py +++ /dev/null @@ -1,210 +0,0 @@ -#!/usr/bin/env python -# ***** BEGIN LICENSE BLOCK ***** -# 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/. -# ***** END LICENSE BLOCK ***** - -import sys -import os - -# load modules from parent dir -sys.path.insert(1, os.path.dirname(sys.path[0])) - -# import the guts -from mozharness.base.config import parse_config_file -from mozharness.base.errors import MakefileErrorList -from mozharness.base.log import ERROR, FATAL -from mozharness.base.script import BaseScript -from mozharness.base.vcs.vcsbase import VCSMixin -from mozharness.mozilla.l10n.locales import GaiaLocalesMixin, LocalesMixin - - -class B2gMultilocale(LocalesMixin, BaseScript, VCSMixin, GaiaLocalesMixin): - """ This is a helper script that requires MercurialBuildFactory - logic to work. We may eventually make this a standalone - script. - - We could inherit MercurialScript instead of BaseScript + VCSMixin - """ - config_options = [ - [["--locale"], { - "action": "extend", - "dest": "locales", - "type": "string", - "help": "Specify the locale(s) to repack" - }], - [["--gaia-languages-file"], { - "dest": "gaia_languages_file", - "help": "languages file for gaia multilocale profile", - }], - [["--gecko-languages-file"], { - "dest": "locales_file", - "help": "languages file for gecko multilocale", - }], - [["--gecko-l10n-root"], { - "dest": "hg_l10n_base", - "help": "root location for gecko l10n repos", - }], - [["--gecko-l10n-base-dir"], { - "dest": "l10n_dir", - "help": "dir to clone gecko l10n repos into, relative to the work directory", - }], - [["--merge-locales"], { - "dest": "merge_locales", - "help": "Dummy option to keep from burning. We now always merge", - }], - [["--gaia-l10n-root"], { - "dest": "gaia_l10n_root", - "help": "root location for gaia l10n repos", - }], - [["--gaia-l10n-base-dir"], { - "dest": "gaia_l10n_base_dir", - "default": "build-gaia-l10n", - "help": "dir to clone l10n repos into, relative to the work directory", - }], - [["--gaia-l10n-vcs"], { - "dest": "gaia_l10n_vcs", - "help": "vcs to use for gaia l10n", - }], - ] - - def __init__(self, require_config_file=False): - LocalesMixin.__init__(self) - BaseScript.__init__(self, - config_options=self.config_options, - all_actions=[ - 'pull', - 'build', - 'summary', - ], - require_config_file=require_config_file, - - # Default configuration - config={ - 'gaia_l10n_vcs': 'hg', - 'vcs_share_base': os.environ.get('HG_SHARE_BASE_DIR'), - 'locales_dir': 'b2g/locales', - 'l10n_dir': 'gecko-l10n', - # I forget what this was for. Copied from the Android multilocale stuff - 'ignore_locales': ["en-US", "multi"], - # This only has 2 locales in it. We probably need files that mirror gaia's locale lists - # We need 2 sets of locales files because the locale names in gaia are different than gecko, e.g. 'es' vs 'es-ES' - # We'll need to override this for localizer buidls - 'locales_file': 'build/b2g/locales/all-locales', - 'mozilla_dir': 'build', - 'objdir': 'obj-firefox', - 'merge_locales': True, - 'work_dir': '.', - 'vcs_output_timeout': 600, # 10 minutes should be enough for anyone! - }, - ) - - def _pre_config_lock(self, rw_config): - super(B2gMultilocale, self)._pre_config_lock(rw_config) - - if 'pull' in self.actions: - message = "" - if 'gaia_languages_file' not in self.config: - message += 'Must specify --gaia-languages-file!\n' - if 'gaia_l10n_root' not in self.config: - message += 'Must specify --gaia-l10n-root!\n' - if 'locales_file' not in self.config: - message += 'Must specify --gecko-languages-file!\n' - if 'hg_l10n_base' not in self.config: - message += 'Must specify --gecko-l10n-root!\n' - if message: - self.fatal(message) - - def query_abs_dirs(self): - if self.abs_dirs: - return self.abs_dirs - abs_dirs = LocalesMixin.query_abs_dirs(self) - - c = self.config - dirs = { - 'src': os.path.join(c['work_dir'], 'gecko'), - 'work_dir': abs_dirs['abs_work_dir'], - 'gaia_l10n_base_dir': os.path.join(abs_dirs['abs_work_dir'], self.config['gaia_l10n_base_dir']), - 'abs_compare_locales_dir': os.path.join(abs_dirs['base_work_dir'], 'compare-locales'), - } - - abs_dirs.update(dirs) - self.abs_dirs = abs_dirs - return self.abs_dirs - - # Actions {{{2 - def pull(self): - """ Clone gaia and gecko locale repos - """ - languages_file = self.config['gaia_languages_file'] - l10n_base_dir = self.query_abs_dirs()['gaia_l10n_base_dir'] - l10n_config = { - 'root': self.config['gaia_l10n_root'], - 'vcs': self.config['gaia_l10n_vcs'], - } - - self.pull_gaia_locale_source(l10n_config, parse_config_file(languages_file).keys(), l10n_base_dir) - self.pull_locale_source() - gecko_locales = self.query_locales() - # populate b2g/overrides, which isn't in gecko atm - dirs = self.query_abs_dirs() - for locale in gecko_locales: - self.mkdir_p(os.path.join(dirs['abs_l10n_dir'], locale, 'b2g', 'chrome', 'overrides')) - self.copytree(os.path.join(dirs['abs_l10n_dir'], locale, 'mobile', 'overrides'), - os.path.join(dirs['abs_l10n_dir'], locale, 'b2g', 'chrome', 'overrides'), - error_level=FATAL) - - def build(self): - """ Do the multilocale portion of the build + packaging. - """ - dirs = self.query_abs_dirs() - gecko_locales = self.query_locales() - make = self.query_exe('make', return_type='string') - env = self.query_env( - partial_env={ - 'LOCALE_MERGEDIR': dirs['abs_merge_dir'].replace(os.sep, '/'), - 'MOZ_CHROME_MULTILOCALE': 'en-US ' + ' '.join(gecko_locales), - } - ) - merge_env = self.query_env( - partial_env={ - 'PATH': '%(PATH)s' + os.pathsep + os.path.join(dirs['abs_compare_locales_dir'], 'scripts'), - 'PYTHONPATH': os.path.join(dirs['abs_compare_locales_dir'], - 'lib'), - - } - ) - for locale in gecko_locales: - command = make + ' merge-%s L10NBASEDIR=%s LOCALE_MERGEDIR=%s' % ( - locale, dirs['abs_l10n_dir'], dirs['abs_merge_dir'].replace(os.sep, '/')) - status = self.run_command(command, - cwd=dirs['abs_locales_dir'], - error_list=MakefileErrorList, - env=merge_env) - command = make + ' chrome-%s L10NBASEDIR=%s LOCALE_MERGEDIR=%s' % ( - locale, dirs['abs_l10n_dir'], dirs['abs_merge_dir'].replace(os.sep, '/')) - status = self.run_command(command, - cwd=dirs['abs_locales_dir'], - error_list=MakefileErrorList) - if status: - self.add_summary("Failed to add locale %s!" % locale, level=ERROR) - command = make + ' -C app' - self.run_command(command, - cwd=os.path.join(dirs['abs_objdir'], 'b2g'), - error_list=MakefileErrorList, - halt_on_failure=True) - command = make + ' package AB_CD=multi' - self.run_command(command, cwd=dirs['abs_objdir'], - error_list=MakefileErrorList, env=env, - halt_on_failure=True) - command = make + ' package-tests AB_CD=multi' - self.run_command(command, cwd=dirs['abs_objdir'], - error_list=MakefileErrorList, env=env, - halt_on_failure=True) - - -# main {{{1 -if __name__ == '__main__': - myScript = B2gMultilocale() - myScript.run_and_exit()