| Index: android_webview/tools/webview_locales_rename_paks.py | 
| diff --git a/android_webview/tools/webview_locales_rename_paks.py b/android_webview/tools/webview_locales_rename_paks.py | 
| new file mode 100755 | 
| index 0000000000000000000000000000000000000000..4bc77e56806b93a80135f282f995fbf05cab8608 | 
| --- /dev/null | 
| +++ b/android_webview/tools/webview_locales_rename_paks.py | 
| @@ -0,0 +1,98 @@ | 
| +#!/usr/bin/env python | 
| +# Copyright (c) 2015 The Chromium Authors. All rights reserved. | 
| +# Use of this source code is governed by a BSD-style license that can be | 
| +# found in the LICENSE file. | 
| + | 
| +"""Helper script to rename paks for a list of locales for the Android WebView. | 
| + | 
| +Gyp doesn't have any built-in looping capability, so this just provides a way to | 
| +loop over a list of locales when renaming pak files. Based on | 
| +chrome/tools/build/repack_locales.py | 
| +""" | 
| + | 
| +import optparse | 
| +import os | 
| +import shutil | 
| +import sys | 
| + | 
| +def calc_output(locale): | 
| +  """Determine the file that will be generated for the given locale.""" | 
| +  return os.path.join(PRODUCT_DIR, 'android_webview_assets', | 
| +                      'locales', locale + '.pak') | 
| + | 
| +def calc_input(locale): | 
| +  """Determine the file that needs processing for the given locale.""" | 
| +  return os.path.join(SHARE_INT_DIR, 'content', 'app', 'strings', | 
| +                  'content_strings_%s.pak' % locale) | 
| + | 
| +def list_outputs(locales): | 
| +  """Returns the names of the files that will be generated for the given | 
| +  locales. | 
| + | 
| +  This is to provide gyp the list of output files, so build targets can | 
| +  properly track what needs to be built. | 
| +  """ | 
| +  return list_files(locales, calc_output) | 
| + | 
| +def list_inputs(locales): | 
| +  """Returns the names of the files that will be processed for the given | 
| +  locales. | 
| + | 
| +  This is to provide gyp the list of input files, so build targets can properly | 
| +  track their prerequisites. | 
| +  """ | 
| +  return list_files(locales, calc_input) | 
| + | 
| +def list_files(locales, filename_func): | 
| +  """Returns the names of the files generated by filename_func for a list of | 
| +  locales. | 
| + | 
| +  :param filename_func: function that generates a filename for a given locale | 
| +  """ | 
| +  files = [] | 
| +  for locale in locales: | 
| +    files.append(filename_func(locale)) | 
| +  return " ".join(['"%s"' % x for x in files]) | 
| + | 
| +def rename_locales(locales): | 
| +  """ Loop over and renames the given locales.""" | 
| +  for locale in locales: | 
| +    shutil.copy(calc_input(locale), calc_output(locale)) | 
| + | 
| +def DoMain(argv): | 
| +  global SHARE_INT_DIR | 
| +  global PRODUCT_DIR | 
| + | 
| +  parser = optparse.OptionParser("usage: %prog [options] locales") | 
| +  parser.add_option("-i", action="store_true", dest="inputs", default=False, | 
| +                    help="Print the expected input file list, then exit.") | 
| +  parser.add_option("-o", action="store_true", dest="outputs", default=False, | 
| +                    help="Print the expected output file list, then exit.") | 
| +  parser.add_option("-p", action="store", dest="product_dir", | 
| +                    help="Product build files output directory.") | 
| +  parser.add_option("-s", action="store", dest="share_int_dir", | 
| +                    help="Shared intermediate build files output directory.") | 
| +  options, locales = parser.parse_args(argv) | 
| +  if not locales: | 
| +    parser.error('Please specify at least one locale to process.\n') | 
| + | 
| +  print_inputs = options.inputs | 
| +  print_outputs = options.outputs | 
| +  SHARE_INT_DIR = options.share_int_dir | 
| +  PRODUCT_DIR = options.product_dir | 
| + | 
| +  if print_inputs and print_outputs: | 
| +    parser.error('Please specify only one of "-i" or "-o".\n') | 
| + | 
| +  if print_inputs: | 
| +    return list_inputs(locales) | 
| + | 
| +  if print_outputs: | 
| +    return list_outputs(locales) | 
| + | 
| +  return rename_locales(locales) | 
| + | 
| +if __name__ == '__main__': | 
| +  results = DoMain(sys.argv[1:]) | 
| +  if results: | 
| +    print results | 
|  |