Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 # Copyright (c) 2011 The Chromium Authors. All rights reserved. | |
| 2 # Use of this source code is governed by a BSD-style license that can be | |
| 3 # found in the LICENSE file. | |
| 4 | |
| 5 """Creates a zip archive with policy template files. The list of input files is | |
| 6 specified by the list of available translations. This is to keep the length of | |
| 7 input arguments below the limit on Windows. | |
| 8 """ | |
| 9 | |
| 10 import sys | |
| 11 import zipfile | |
| 12 | |
| 13 # The following list specifies the files to be archived. Items containing the | |
| 14 # substring ZZLOCALE will be replicated for each specified locale with ZZLOCALE | |
| 15 # replaced with the respective locale. | |
| 16 FILE_NAME_PATTERNS = [ | |
| 17 'VERSION', | |
| 18 # The following elements of the list should be in sync with the outputs | |
| 19 # specified for Windows in app/policy/policy_templates.grd | |
|
tony
2011/05/19 18:49:24
Hmm, is it possible for you to import tools/grit/g
gfeher
2011/05/20 20:32:48
It required hacking, but I guess it worthed it. Do
| |
| 20 'linux/examples/chrome.json', | |
| 21 'windows/examples/chrome.reg', | |
| 22 'windows/admx/chrome.admx', | |
| 23 'windows/admx/ZZLOCALE/chrome.adml', | |
| 24 'windows/adm/ZZLOCALE/chrome.adm', | |
| 25 'common/html/ZZLOCALE/chrome_policy_list.html', | |
| 26 ] | |
| 27 | |
| 28 def add_files_to_zip(zip_file, base_dir, file_list): | |
| 29 """Pack a list of files into a zip archive, that is already | |
| 30 opened for writing. | |
| 31 | |
| 32 Args: | |
| 33 zip_file: An object representing the zip archive. | |
| 34 base_dir: Base path of all the files in the real file system. | |
| 35 files: List of file paths to add, all relative to base_dir. | |
| 36 The zip entries will only contain this componenet of the path. | |
| 37 """ | |
| 38 for file_path in file_list: | |
| 39 zip_file.write(base_dir + file_path, file_path) | |
| 40 return 0 | |
| 41 | |
| 42 def locales_to_file_names(file_name_patterns, locales): | |
| 43 """Combines |file_name_patterns| and |locales| into a list of file paths. | |
| 44 Each entry in file_name_patterns containing the substring ZZLOCALE will | |
| 45 be included in the result for each locale with ZZLOCALE replaced with | |
| 46 the respective locale. | |
| 47 """ | |
| 48 result = [] | |
| 49 for f in file_name_patterns: | |
| 50 if 'ZZLOCALE' in f: | |
| 51 for locale in locales: | |
| 52 result.append(f.replace('ZZLOCALE', locale)) | |
| 53 else: | |
| 54 result.append(f) | |
| 55 return result | |
| 56 | |
| 57 def main(zip_path, base_dir, locales): | |
| 58 """Pack a list of files into a zip archive. | |
| 59 | |
| 60 Args: | |
| 61 zip_path: The file name of the zip archive. | |
| 62 base_dir: Base path of input files. | |
| 63 locales: The list of locales that are used to generate the list of file | |
| 64 names using INPUT_FILES. | |
| 65 """ | |
| 66 if (base_dir[-1] != '/'): | |
| 67 base_dir = base_dir + '/' | |
| 68 | |
| 69 file_list = locales_to_file_names(FILE_NAME_PATTERNS, locales) | |
| 70 zip_file = zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED) | |
| 71 try: | |
| 72 return add_files_to_zip(zip_file, base_dir, file_list) | |
| 73 finally: | |
| 74 zip_file.close() | |
| 75 | |
| 76 if '__main__' == __name__: | |
| 77 if len(sys.argv) < 4: | |
| 78 print "usage: %s output.zip path/to/base/dir list of locales" % sys.argv[0] | |
| 79 sys.exit(1) | |
| 80 | |
| 81 sys.exit(main(sys.argv[1], sys.argv[2], sys.argv[3:])) | |
| OLD | NEW |