OLD | NEW |
1 # coding: utf-8 | 1 # coding: utf-8 |
2 | 2 |
3 # This Source Code Form is subject to the terms of the Mozilla Public | 3 # This Source Code Form is subject to the terms of the Mozilla Public |
4 # License, v. 2.0. If a copy of the MPL was not distributed with this | 4 # License, v. 2.0. If a copy of the MPL was not distributed with this |
5 # file, You can obtain one at http://mozilla.org/MPL/2.0/. | 5 # file, You can obtain one at http://mozilla.org/MPL/2.0/. |
6 | 6 |
7 import sys | 7 import sys |
8 import os | 8 import os |
9 import re | 9 import re |
10 import json | 10 import json |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
50 except ImportError: | 50 except ImportError: |
51 import Image | 51 import Image |
52 icons = {} | 52 icons = {} |
53 for filename in filenames: | 53 for filename in filenames: |
54 width, height = Image.open(StringIO(files[filename])).size | 54 width, height = Image.open(StringIO(files[filename])).size |
55 if(width != height): | 55 if(width != height): |
56 print >>sys.stderr, 'Warning: %s size is %ix%i, icon should be square' % (
filename, width, height) | 56 print >>sys.stderr, 'Warning: %s size is %ix%i, icon should be square' % (
filename, width, height) |
57 icons[width] = filename | 57 icons[width] = filename |
58 return icons | 58 return icons |
59 | 59 |
| 60 def createScriptPage(params, template_name, script_option): |
| 61 template = getTemplate(template_name, autoEscape=True) |
| 62 return template.render( |
| 63 basename=params['metadata'].get('general', 'basename'), |
| 64 scripts=params['metadata'].get(*script_option).split() |
| 65 ).encode('utf-8') |
| 66 |
60 def createManifest(params, files): | 67 def createManifest(params, files): |
61 template = getTemplate('manifest.json.tmpl') | 68 template = getTemplate('manifest.json.tmpl') |
62 templateData = dict(params) | 69 templateData = dict(params) |
63 | 70 |
64 baseDir = templateData['baseDir'] | 71 baseDir = templateData['baseDir'] |
65 metadata = templateData['metadata'] | 72 metadata = templateData['metadata'] |
66 | 73 |
67 for opt in ('browserAction', 'pageAction'): | 74 for opt in ('browserAction', 'pageAction'): |
68 if not metadata.has_option('general', opt): | 75 if not metadata.has_option('general', opt): |
69 continue | 76 continue |
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
350 import buildtools | 357 import buildtools |
351 import random | 358 import random |
352 files.read(os.path.join(buildtools.__path__[0], 'chromeDevenvPoller__.js'),
relpath='devenvPoller__.js') | 359 files.read(os.path.join(buildtools.__path__[0], 'chromeDevenvPoller__.js'),
relpath='devenvPoller__.js') |
353 files['devenvVersion__'] = str(random.random()) | 360 files['devenvVersion__'] = str(random.random()) |
354 | 361 |
355 if (metadata.has_option('general', 'backgroundScripts') and | 362 if (metadata.has_option('general', 'backgroundScripts') and |
356 'lib/info.js' in re.split(r'\s+', metadata.get('general', 'backgroundScrip
ts')) and | 363 'lib/info.js' in re.split(r'\s+', metadata.get('general', 'backgroundScrip
ts')) and |
357 'lib/info.js' not in files): | 364 'lib/info.js' not in files): |
358 files['lib/info.js'] = createInfoModule(params) | 365 files['lib/info.js'] = createInfoModule(params) |
359 | 366 |
| 367 if metadata.has_option('general', 'testScripts'): |
| 368 files['qunit/index.html'] = createScriptPage(params, 'testIndex.html.tmpl', |
| 369 ('general', 'testScripts')) |
| 370 |
360 zipdata = files.zipToString() | 371 zipdata = files.zipToString() |
361 signature = None | 372 signature = None |
362 pubkey = None | 373 pubkey = None |
363 if keyFile != None: | 374 if keyFile != None: |
364 signature = signBinary(zipdata, keyFile) | 375 signature = signBinary(zipdata, keyFile) |
365 pubkey = getPublicKey(keyFile) | 376 pubkey = getPublicKey(keyFile) |
366 writePackage(outFile, pubkey, signature, zipdata) | 377 writePackage(outFile, pubkey, signature, zipdata) |
OLD | NEW |