tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

java_google_api_keys.py (3499B)


      1 #!/usr/bin/env python3
      2 #
      3 # Copyright 2015 The Chromium Authors
      4 # Use of this source code is governed by a BSD-style license that can be
      5 # found in the LICENSE file.
      6 
      7 # Generates a Java file with API keys.
      8 
      9 import argparse
     10 import os
     11 import string
     12 import sys
     13 import zipfile
     14 
     15 from util import build_utils
     16 import zip_helpers
     17 
     18 sys.path.append(
     19    os.path.abspath(os.path.join(sys.path[0], '../../../google_apis')))
     20 import google_api_keys
     21 
     22 
     23 PACKAGE = 'org.chromium.chrome'
     24 CLASSNAME = 'GoogleAPIKeys'
     25 
     26 
     27 def GetScriptName():
     28  return os.path.relpath(__file__, build_utils.DIR_SOURCE_ROOT)
     29 
     30 
     31 def GenerateOutput(constant_definitions):
     32  template = string.Template("""
     33 // Copyright 2015 The Chromium Authors
     34 // Use of this source code is governed by a BSD-style license that can be
     35 // found in the LICENSE file.
     36 
     37 // This file is autogenerated by
     38 //     ${SCRIPT_NAME}
     39 // From
     40 //     ${SOURCE_PATH}
     41 
     42 package ${PACKAGE};
     43 
     44 public class ${CLASS_NAME} {
     45 ${CONSTANT_ENTRIES}
     46 }
     47 """)
     48 
     49  constant_template = string.Template(
     50      '  public static final String ${NAME} = "${VALUE}";')
     51  constant_entries_list = []
     52  for constant_name, constant_value in constant_definitions.items():
     53    values = {
     54        'NAME': constant_name,
     55        'VALUE': constant_value,
     56    }
     57    constant_entries_list.append(constant_template.substitute(values))
     58  constant_entries_string = '\n'.join(constant_entries_list)
     59 
     60  values = {
     61      'CLASS_NAME': CLASSNAME,
     62      'CONSTANT_ENTRIES': constant_entries_string,
     63      'PACKAGE': PACKAGE,
     64      'SCRIPT_NAME': GetScriptName(),
     65      'SOURCE_PATH': 'google_api_keys/google_api_keys.h',
     66  }
     67  return template.substitute(values)
     68 
     69 
     70 def _DoWriteJavaOutput(output_path, constant_definition):
     71  folder = os.path.dirname(output_path)
     72  if folder and not os.path.exists(folder):
     73    os.makedirs(folder)
     74  with open(output_path, 'w') as out_file:
     75    out_file.write(GenerateOutput(constant_definition))
     76 
     77 
     78 def _DoWriteJarOutput(output_path, constant_definition):
     79  folder = os.path.dirname(output_path)
     80  if folder and not os.path.exists(folder):
     81    os.makedirs(folder)
     82  with zipfile.ZipFile(output_path, 'w') as srcjar:
     83    path = '%s/%s' % (PACKAGE.replace('.', '/'), CLASSNAME + '.java')
     84    data = GenerateOutput(constant_definition)
     85    zip_helpers.add_to_zip_hermetic(srcjar, path, data=data)
     86 
     87 
     88 def _DoMain(argv):
     89  parser = argparse.ArgumentParser()
     90  parser.add_argument("--out", help="Path for java output.")
     91  parser.add_argument("--srcjar", help="Path for srcjar output.")
     92  options = parser.parse_args(argv)
     93  if not options.out and not options.srcjar:
     94    parser.print_help()
     95    sys.exit(-1)
     96 
     97  values = {}
     98  values['GOOGLE_API_KEY'] = google_api_keys.GetAPIKey()
     99  values['GOOGLE_API_KEY_ANDROID_NON_STABLE'] = (
    100      google_api_keys.GetAPIKeyAndroidNonStable())
    101  values['GOOGLE_CLIENT_ID_MAIN'] = google_api_keys.GetClientID('MAIN')
    102  values['GOOGLE_CLIENT_SECRET_MAIN'] = google_api_keys.GetClientSecret('MAIN')
    103  values['GOOGLE_CLIENT_ID_REMOTING'] = google_api_keys.GetClientID('REMOTING')
    104  values['GOOGLE_CLIENT_SECRET_REMOTING'] = google_api_keys.GetClientSecret(
    105      'REMOTING')
    106  values['GOOGLE_CLIENT_ID_REMOTING_HOST'] = google_api_keys.GetClientID(
    107      'REMOTING_HOST')
    108  values['GOOGLE_CLIENT_SECRET_REMOTING_HOST'] = (google_api_keys.
    109      GetClientSecret('REMOTING_HOST'))
    110 
    111  if options.out:
    112    _DoWriteJavaOutput(options.out, values)
    113  if options.srcjar:
    114    _DoWriteJarOutput(options.srcjar, values)
    115 
    116 
    117 if __name__ == '__main__':
    118  _DoMain(sys.argv[1:])