OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # | 2 # |
3 # Copyright 2014 The Chromium Authors. All rights reserved. | 3 # Copyright 2014 The Chromium Authors. All rights reserved. |
4 # Use of this source code is governed by a BSD-style license that can be | 4 # Use of this source code is governed by a BSD-style license that can be |
5 # found in the LICENSE file. | 5 # found in the LICENSE file. |
6 | 6 |
7 """Inlines all module.json files into modules.js.""" | 7 """Inlines all module.json files into modules.js.""" |
8 | 8 |
9 from os import path | 9 from os import path |
10 import errno | 10 import errno |
11 import shutil | 11 import shutil |
12 import sys | 12 import sys |
| 13 try: |
| 14 import simplejson as json |
| 15 except ImportError: |
| 16 import json |
13 | 17 |
14 | 18 |
15 def read_file(filename): | 19 def read_file(filename): |
16 with open(filename, 'rt') as file: | 20 with open(filename, 'rt') as file: |
17 return file.read() | 21 return file.read() |
18 | 22 |
19 | 23 |
20 def build_modules(module_jsons): | 24 def build_modules(module_jsons): |
21 result = [] | 25 result = [] |
22 for json_filename in module_jsons: | 26 for json_filename in module_jsons: |
23 if not path.exists(json_filename): | 27 if not path.exists(json_filename): |
24 continue | 28 continue |
25 module_name = path.basename(path.dirname(json_filename)) | 29 module_name = path.basename(path.dirname(json_filename)) |
26 json = read_file(json_filename).replace('{', '{"name":"%s",' % module_na
me, 1) | 30 |
27 result.append(json) | 31 # pylint: disable=E1103 |
28 return ','.join(result) | 32 module_json = json.loads(read_file(json_filename)) |
| 33 module_json['name'] = module_name |
| 34 |
| 35 # Clear scripts, as they are not used at runtime |
| 36 # (only the fact of their presence is important). |
| 37 if module_json.get('scripts'): |
| 38 module_json['scripts'] = [] |
| 39 result.append(module_json) |
| 40 return json.dumps(result) |
29 | 41 |
30 | 42 |
31 def main(argv): | 43 def main(argv): |
32 input_filename = argv[1] | 44 input_filename = argv[1] |
33 output_filename = argv[2] | 45 output_filename = argv[2] |
34 module_jsons = argv[3:] | 46 module_jsons = argv[3:] |
35 | 47 |
36 with open(output_filename, 'w') as output_file: | 48 with open(output_filename, 'w') as output_file: |
37 output_file.write('var allDescriptors=[%s];' % build_modules(module_json
s)) | 49 output_file.write('var allDescriptors=%s;' % build_modules(module_jsons)
) |
38 | 50 |
39 | 51 |
40 if __name__ == '__main__': | 52 if __name__ == '__main__': |
41 sys.exit(main(sys.argv)) | 53 sys.exit(main(sys.argv)) |
OLD | NEW |