| LEFT | RIGHT | 
|    1 # This Source Code Form is subject to the terms of the Mozilla Public |    1 # This Source Code Form is subject to the terms of the Mozilla Public | 
|    2 # License, v. 2.0. If a copy of the MPL was not distributed with this |    2 # License, v. 2.0. If a copy of the MPL was not distributed with this | 
|    3 # file, You can obtain one at http://mozilla.org/MPL/2.0/. |    3 # file, You can obtain one at http://mozilla.org/MPL/2.0/. | 
|    4  |    4  | 
|    5 import errno |    5 import errno | 
|    6 import glob |    6 import glob | 
|    7 import io |    7 import io | 
|    8 import json |    8 import json | 
|    9 import os |    9 import os | 
|   10 import re |   10 import re | 
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   94                 # ... = icon-19.png icon-38.png popup.html |   94                 # ... = icon-19.png icon-38.png popup.html | 
|   95                 popup = icons.pop() |   95                 popup = icons.pop() | 
|   96                 icon = makeIcons(files, icons) |   96                 icon = makeIcons(files, icons) | 
|   97         else: |   97         else: | 
|   98             # ... = icon-16.png icon-32.png icon-48.png |   98             # ... = icon-16.png icon-32.png icon-48.png | 
|   99             icon = makeIcons(files, icons) |   99             icon = makeIcons(files, icons) | 
|  100             popup = None |  100             popup = None | 
|  101  |  101  | 
|  102         templateData[opt] = {'icon': icon, 'popup': popup} |  102         templateData[opt] = {'icon': icon, 'popup': popup} | 
|  103  |  103  | 
|  104     # Generate templatedataa which does not need special processing |  | 
|  105     arbitrary_manifest = metadata.as_json_object('manifest') |  | 
|  106     templateData.update(arbitrary_manifest) |  | 
|  107  |  | 
|  108     if metadata.has_option('general', 'icons'): |  104     if metadata.has_option('general', 'icons'): | 
|  109         templateData['icons'] = makeIcons(files, |  105         templateData['icons'] = makeIcons(files, | 
|  110                                           metadata.get('general', 'icons').split
     ()) |  106                                           metadata.get('general', 'icons').split
     ()) | 
|  111  |  107  | 
|  112     if metadata.has_option('general', 'backgroundScripts'): |  108     if metadata.has_option('general', 'backgroundScripts'): | 
|  113         templateData['backgroundScripts'] = metadata.get( |  109         templateData['backgroundScripts'] = metadata.get( | 
|  114             'general', 'backgroundScripts').split() |  110             'general', 'backgroundScripts').split() | 
|  115         if params['devenv']: |  111         if params['devenv']: | 
|  116             templateData['backgroundScripts'].append('devenvPoller__.js') |  112             templateData['backgroundScripts'].append('devenvPoller__.js') | 
|  117  |  113  | 
| (...skipping 13 matching lines...) Expand all  Loading... | 
|  131     if params['type'] == 'gecko': |  127     if params['type'] == 'gecko': | 
|  132         templateData['app_id'] = get_app_id(params['releaseBuild'], metadata) |  128         templateData['app_id'] = get_app_id(params['releaseBuild'], metadata) | 
|  133  |  129  | 
|  134     manifest = template.render(templateData) |  130     manifest = template.render(templateData) | 
|  135  |  131  | 
|  136     # Normalize JSON structure |  132     # Normalize JSON structure | 
|  137     licenseComment = re.compile(r'/\*.*?\*/', re.S) |  133     licenseComment = re.compile(r'/\*.*?\*/', re.S) | 
|  138     data = json.loads(re.sub(licenseComment, '', manifest, 1)) |  134     data = json.loads(re.sub(licenseComment, '', manifest, 1)) | 
|  139     if '_dummy' in data: |  135     if '_dummy' in data: | 
|  140         del data['_dummy'] |  136         del data['_dummy'] | 
 |  137  | 
 |  138     metadata.serialize_section_if_present('manifest', data) | 
|  141     manifest = json.dumps(data, sort_keys=True, indent=2) |  139     manifest = json.dumps(data, sort_keys=True, indent=2) | 
|  142  |  140  | 
|  143     return manifest.encode('utf-8') |  141     return manifest.encode('utf-8') | 
|  144  |  142  | 
|  145  |  143  | 
|  146 def toJson(data): |  144 def toJson(data): | 
|  147     return json.dumps( |  145     return json.dumps( | 
|  148         data, ensure_ascii=False, sort_keys=True, |  146         data, ensure_ascii=False, sort_keys=True, | 
|  149         indent=2, separators=(',', ': ') |  147         indent=2, separators=(',', ': ') | 
|  150     ).encode('utf-8') + '\n' |  148     ).encode('utf-8') + '\n' | 
| (...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  389     if devenv: |  387     if devenv: | 
|  390         add_devenv_requirements(files, metadata, params) |  388         add_devenv_requirements(files, metadata, params) | 
|  391  |  389  | 
|  392     zipdata = files.zipToString() |  390     zipdata = files.zipToString() | 
|  393     signature = None |  391     signature = None | 
|  394     pubkey = None |  392     pubkey = None | 
|  395     if keyFile != None: |  393     if keyFile != None: | 
|  396         signature = signBinary(zipdata, keyFile) |  394         signature = signBinary(zipdata, keyFile) | 
|  397         pubkey = getPublicKey(keyFile) |  395         pubkey = getPublicKey(keyFile) | 
|  398     writePackage(outFile, pubkey, signature, zipdata) |  396     writePackage(outFile, pubkey, signature, zipdata) | 
| LEFT | RIGHT |