Left: | ||
Right: |
OLD | NEW |
---|---|
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 | |
Sebastian Noack
2018/04/14 00:33:07
Typo: templatedataa -> templatedata
tlucas
2018/04/14 08:36:23
Acknowledged.
tlucas
2018/04/18 14:46:04
Done. (Removed it completely)
| |
105 templateData.update({'extra': metadata.as_json_object('manifest')}) | |
106 | |
104 if metadata.has_option('general', 'icons'): | 107 if metadata.has_option('general', 'icons'): |
105 templateData['icons'] = makeIcons(files, | 108 templateData['icons'] = makeIcons(files, |
106 metadata.get('general', 'icons').split ()) | 109 metadata.get('general', 'icons').split ()) |
107 | 110 |
108 if metadata.has_option('general', 'permissions'): | |
109 templateData['permissions'] = metadata.get('general', 'permissions').spl it() | |
110 | |
111 if metadata.has_option('general', 'optionalPermissions'): | |
112 templateData['optionalPermissions'] = metadata.get( | |
113 'general', 'optionalPermissions').split() | |
114 | |
115 if metadata.has_option('general', 'backgroundScripts'): | 111 if metadata.has_option('general', 'backgroundScripts'): |
116 templateData['backgroundScripts'] = metadata.get( | 112 templateData['backgroundScripts'] = metadata.get( |
117 'general', 'backgroundScripts').split() | 113 'general', 'backgroundScripts').split() |
118 if params['devenv']: | 114 if params['devenv']: |
119 templateData['backgroundScripts'].append('devenvPoller__.js') | 115 templateData['backgroundScripts'].append('devenvPoller__.js') |
120 | 116 |
121 if metadata.has_option('general', 'webAccessible') and metadata.get('general ', 'webAccessible') != '': | |
122 templateData['webAccessible'] = metadata.get('general', | |
123 'webAccessible').split() | |
124 | |
125 if metadata.has_section('contentScripts'): | 117 if metadata.has_section('contentScripts'): |
126 contentScripts = [] | 118 contentScripts = [] |
127 for run_at, scripts in metadata.items('contentScripts'): | 119 for run_at, scripts in metadata.items('contentScripts'): |
128 if scripts == '': | 120 if scripts == '': |
129 continue | 121 continue |
130 contentScripts.append({ | 122 contentScripts.append({ |
131 'matches': ['http://*/*', 'https://*/*'], | 123 'matches': ['http://*/*', 'https://*/*'], |
132 'js': scripts.split(), | 124 'js': scripts.split(), |
133 'run_at': run_at, | 125 'run_at': run_at, |
134 'all_frames': True, | 126 'all_frames': True, |
135 'match_about_blank': True, | 127 'match_about_blank': True, |
136 }) | 128 }) |
137 templateData['contentScripts'] = contentScripts | 129 templateData['contentScripts'] = contentScripts |
138 if params['type'] == 'gecko': | 130 if params['type'] == 'gecko': |
139 templateData['app_id'] = get_app_id(params['releaseBuild'], metadata) | 131 templateData['app_id'] = get_app_id(params['releaseBuild'], metadata) |
140 | 132 |
141 manifest = template.render(templateData) | 133 manifest = template.render(templateData) |
142 | 134 |
143 # Normalize JSON structure | 135 # Normalize JSON structure |
144 licenseComment = re.compile(r'/\*.*?\*/', re.S) | 136 licenseComment = re.compile(r'/\*.*?\*/', re.S) |
145 data = json.loads(re.sub(licenseComment, '', manifest, 1)) | 137 data = json.loads(re.sub(licenseComment, '', manifest, 1)) |
146 if '_dummy' in data: | 138 if '_dummy' in data: |
147 del data['_dummy'] | 139 del data['_dummy'] |
148 manifest = json.dumps(data, sort_keys=True, indent=2) | 140 manifest = json.dumps(data, sort_keys=True, indent=2) |
Sebastian Noack
2018/04/14 09:08:39
If we inject the generic keys here, we don't have
tlucas
2018/04/18 14:46:05
OrderedDict is indeed not necessary, removed it.
T
| |
149 | 141 |
150 return manifest.encode('utf-8') | 142 return manifest.encode('utf-8') |
151 | 143 |
152 | 144 |
153 def toJson(data): | 145 def toJson(data): |
154 return json.dumps( | 146 return json.dumps( |
155 data, ensure_ascii=False, sort_keys=True, | 147 data, ensure_ascii=False, sort_keys=True, |
156 indent=2, separators=(',', ': ') | 148 indent=2, separators=(',', ': ') |
157 ).encode('utf-8') + '\n' | 149 ).encode('utf-8') + '\n' |
158 | 150 |
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
396 if devenv: | 388 if devenv: |
397 add_devenv_requirements(files, metadata, params) | 389 add_devenv_requirements(files, metadata, params) |
398 | 390 |
399 zipdata = files.zipToString() | 391 zipdata = files.zipToString() |
400 signature = None | 392 signature = None |
401 pubkey = None | 393 pubkey = None |
402 if keyFile != None: | 394 if keyFile != None: |
403 signature = signBinary(zipdata, keyFile) | 395 signature = signBinary(zipdata, keyFile) |
404 pubkey = getPublicKey(keyFile) | 396 pubkey = getPublicKey(keyFile) |
405 writePackage(outFile, pubkey, signature, zipdata) | 397 writePackage(outFile, pubkey, signature, zipdata) |
OLD | NEW |