| 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 base64 | 5 import base64 |
| 6 import collections | 6 import collections |
| 7 import ConfigParser | 7 import ConfigParser |
| 8 import json | 8 import json |
| 9 import os | 9 import os |
| 10 import re | 10 import re |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 85 homepage=get_optional('general', 'homepage'), | 85 homepage=get_optional('general', 'homepage'), |
| 86 updateURL=get_optional('general', 'updateURL'), | 86 updateURL=get_optional('general', 'updateURL'), |
| 87 allowedDomains=allowedDomains, | 87 allowedDomains=allowedDomains, |
| 88 allowAllDomains=allowAllDomains, | 88 allowAllDomains=allowAllDomains, |
| 89 allowSecurePages=allowSecurePages, | 89 allowSecurePages=allowSecurePages, |
| 90 startScripts=(get_optional('contentScripts', 'document_start') or '').sp
lit(), | 90 startScripts=(get_optional('contentScripts', 'document_start') or '').sp
lit(), |
| 91 endScripts=(get_optional('contentScripts', 'document_end') or '').split(
), | 91 endScripts=(get_optional('contentScripts', 'document_end') or '').split(
), |
| 92 menus=parse_section('menus', 2), | 92 menus=parse_section('menus', 2), |
| 93 toolbarItems=parse_section('toolbar_items'), | 93 toolbarItems=parse_section('toolbar_items'), |
| 94 popovers=parse_section('popovers'), | 94 popovers=parse_section('popovers'), |
| 95 developerIdentifier=params.get('developerIdentifier') | 95 developerIdentifier=params.get('developerIdentifier'), |
| 96 ).encode('utf-8') | 96 ).encode('utf-8') |
| 97 | 97 |
| 98 | 98 |
| 99 def createInfoModule(params): | 99 def createInfoModule(params): |
| 100 template = getTemplate('safariInfo.js.tmpl') | 100 template = getTemplate('safariInfo.js.tmpl') |
| 101 return template.render(params).encode('utf-8') | 101 return template.render(params).encode('utf-8') |
| 102 | 102 |
| 103 | 103 |
| 104 def _get_sequence(data): | 104 def _get_sequence(data): |
| 105 from Crypto.Util import asn1 | 105 from Crypto.Util import asn1 |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 153 module_name = os.path.splitext(os.path.basename(input_filename))[0] | 153 module_name = os.path.splitext(os.path.basename(input_filename))[0] |
| 154 prefix = os.path.basename(os.path.dirname(input_filename)) | 154 prefix = os.path.basename(os.path.dirname(input_filename)) |
| 155 if prefix != 'lib': | 155 if prefix != 'lib': |
| 156 module_name = '{}_{}'.format(prefix, module_name) | 156 module_name = '{}_{}'.format(prefix, module_name) |
| 157 with open(os.path.join(base_dir, input_filename), 'r') as file: | 157 with open(os.path.join(base_dir, input_filename), 'r') as file: |
| 158 modules.append((module_name, file.read().decode('utf-8'))) | 158 modules.append((module_name, file.read().decode('utf-8'))) |
| 159 files.pop(input_filename, None) | 159 files.pop(input_filename, None) |
| 160 | 160 |
| 161 files[filename] = template.render( | 161 files[filename] = template.render( |
| 162 args=current_args, | 162 args=current_args, |
| 163 modules=modules | 163 modules=modules, |
| 164 ).encode('utf-8') | 164 ).encode('utf-8') |
| 165 | 165 |
| 166 | 166 |
| 167 def createBuild(baseDir, type, outFile=None, buildNum=None, releaseBuild=False,
keyFile=None, devenv=False): | 167 def createBuild(baseDir, type, outFile=None, buildNum=None, releaseBuild=False,
keyFile=None, devenv=False): |
| 168 metadata = readMetadata(baseDir, type) | 168 metadata = readMetadata(baseDir, type) |
| 169 version = getBuildVersion(baseDir, metadata, releaseBuild, buildNum) | 169 version = getBuildVersion(baseDir, metadata, releaseBuild, buildNum) |
| 170 | 170 |
| 171 if not outFile: | 171 if not outFile: |
| 172 outFile = getDefaultFileName(metadata, version, 'safariextz' if keyFile
else 'zip') | 172 outFile = getDefaultFileName(metadata, version, 'safariextz' if keyFile
else 'zip') |
| 173 | 173 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 185 process=lambda path, data: processFile(path, data, params)) | 185 process=lambda path, data: processFile(path, data, params)) |
| 186 files.readMappedFiles(mapped) | 186 files.readMappedFiles(mapped) |
| 187 files.read(baseDir, skip=[opt for opt, _ in mapped]) | 187 files.read(baseDir, skip=[opt for opt, _ in mapped]) |
| 188 | 188 |
| 189 if metadata.has_section('convert_js'): | 189 if metadata.has_section('convert_js'): |
| 190 convertJS(params, files) | 190 convertJS(params, files) |
| 191 | 191 |
| 192 if metadata.has_section('preprocess'): | 192 if metadata.has_section('preprocess'): |
| 193 files.preprocess( | 193 files.preprocess( |
| 194 [f for f, _ in metadata.items('preprocess')], | 194 [f for f, _ in metadata.items('preprocess')], |
| 195 {'needsExt': True} | 195 {'needsExt': True}, |
| 196 ) | 196 ) |
| 197 | 197 |
| 198 if metadata.has_section('import_locales'): | 198 if metadata.has_section('import_locales'): |
| 199 import_locales(params, files) | 199 import_locales(params, files) |
| 200 | 200 |
| 201 if metadata.has_option('general', 'testScripts'): | 201 if metadata.has_option('general', 'testScripts'): |
| 202 files['qunit/index.html'] = createScriptPage(params, 'testIndex.html.tmp
l', | 202 files['qunit/index.html'] = createScriptPage(params, 'testIndex.html.tmp
l', |
| 203 ('general', 'testScripts')) | 203 ('general', 'testScripts')) |
| 204 | 204 |
| 205 if keyFile: | 205 if keyFile: |
| 206 from buildtools import xarfile | 206 from buildtools import xarfile |
| 207 certs, key = xarfile.read_certificates_and_key(keyFile) | 207 certs, key = xarfile.read_certificates_and_key(keyFile) |
| 208 params['developerIdentifier'] = get_developer_identifier(certs) | 208 params['developerIdentifier'] = get_developer_identifier(certs) |
| 209 | 209 |
| 210 files['lib/info.js'] = createInfoModule(params) | 210 files['lib/info.js'] = createInfoModule(params) |
| 211 files['background.html'] = createScriptPage(params, 'background.html.tmpl', | 211 files['background.html'] = createScriptPage(params, 'background.html.tmpl', |
| 212 ('general', 'backgroundScripts')
) | 212 ('general', 'backgroundScripts')
) |
| 213 files['Info.plist'] = createManifest(params, files) | 213 files['Info.plist'] = createManifest(params, files) |
| 214 | 214 |
| 215 dirname = metadata.get('general', 'basename') + '.safariextension' | 215 dirname = metadata.get('general', 'basename') + '.safariextension' |
| 216 for filename in files.keys(): | 216 for filename in files.keys(): |
| 217 files[os.path.join(dirname, filename)] = files.pop(filename) | 217 files[os.path.join(dirname, filename)] = files.pop(filename) |
| 218 | 218 |
| 219 if not devenv and keyFile: | 219 if not devenv and keyFile: |
| 220 from buildtools import xarfile | 220 from buildtools import xarfile |
| 221 xarfile.create(outFile, files, keyFile) | 221 xarfile.create(outFile, files, keyFile) |
| 222 else: | 222 else: |
| 223 files.zip(outFile) | 223 files.zip(outFile) |
| OLD | NEW |