def createBuild(baseDir, type='chrome', outFile=None, buildNum=None, releaseBuild=False, keyFile=None, devenv=False): metadata = readMetadata(baseDir, type) version = getBuildVersion(baseDir, metadata, releaseBuild, buildNum) if outFile == None: file_extension = get_extension(type, keyFile is not None) outFile = getDefaultFileName(metadata, version, file_extension) params = { 'type': type, 'baseDir': baseDir, 'releaseBuild': releaseBuild, 'version': version, 'devenv': devenv, 'metadata': metadata, } mapped = metadata.items('mapping') if metadata.has_section( 'mapping') else [] files = Files(getPackageFiles(params), getIgnoredFiles(params), process=lambda path, data: processFile(path, data, params)) files.readMappedFiles(mapped) files.read(baseDir, skip=[opt for opt, _ in mapped]) if metadata.has_section('bundles'): bundle_tests = devenv and metadata.has_option('general', 'testScripts') create_bundles(params, files, bundle_tests) if metadata.has_section('preprocess'): files.preprocess( [f for f, _ in metadata.items('preprocess')], {'needsExt': True}, ) if metadata.has_section('import_locales'): import_locales(params, files) files['manifest.json'] = createManifest(params, files) if type == 'chrome': fix_translations_for_chrome(files) if devenv: add_devenv_requirements(files, metadata, params) zipdata = files.zipToString() signature = None pubkey = None if keyFile != None: signature = signBinary(zipdata, keyFile) pubkey = getPublicKey(keyFile) writePackage(outFile, pubkey, signature, zipdata)
def createBuild(baseDir, type='chrome', outFile=None, buildNum=None, releaseBuild=False, keyFile=None, experimentalAPI=False, devenv=False): metadata = readMetadata(baseDir, type) version = getBuildVersion(baseDir, metadata, releaseBuild, buildNum) if outFile == None: outFile = getDefaultFileName(baseDir, metadata, version, 'crx' if keyFile else 'zip') params = { 'type': type, 'baseDir': baseDir, 'releaseBuild': releaseBuild, 'version': version, 'experimentalAPI': experimentalAPI, 'devenv': devenv, 'metadata': metadata, } files = Files(getPackageFiles(params), getIgnoredFiles(params), process=lambda path, data: processFile(path, data, params)) files['manifest.json'] = createManifest(params) if metadata.has_section('mapping'): files.readMappedFiles(metadata.items('mapping')) files.read(baseDir) if metadata.has_section('convert_js'): convertJS(params, files) if metadata.has_section('convert_img'): from imageConversion import convertImages convertImages(params, files) if metadata.has_section('preprocess'): files.preprocess( [f for f, _ in metadata.items('preprocess')], {'needsExt': True} ) if metadata.has_section('import_locales'): importGeckoLocales(params, files) if devenv: files['devenvPoller__.js'] = createPoller(params) if (metadata.has_option('general', 'backgroundScripts') and 'lib/info.js' in re.split(r'\s+', metadata.get('general', 'backgroundScripts')) and 'lib/info.js' not in files): files['lib/info.js'] = createInfoModule(params) zipdata = files.zipToString() signature = None pubkey = None if keyFile != None: signature = signBinary(zipdata, keyFile) pubkey = getPublicKey(keyFile) writePackage(outFile, pubkey, signature, zipdata)
def createBuild(baseDir, type='chrome', outFile=None, buildNum=None, releaseBuild=False, keyFile=None, devenv=False): metadata = readMetadata(baseDir, type) version = getBuildVersion(baseDir, metadata, releaseBuild, buildNum) if outFile == None: file_extension = get_extension(type, keyFile is not None) outFile = getDefaultFileName(metadata, version, file_extension) params = { 'type': type, 'baseDir': baseDir, 'releaseBuild': releaseBuild, 'version': version, 'devenv': devenv, 'metadata': metadata, } mapped = metadata.items('mapping') if metadata.has_section('mapping') else [] files = Files(getPackageFiles(params), getIgnoredFiles(params), process=lambda path, data: processFile(path, data, params)) files.readMappedFiles(mapped) files.read(baseDir, skip=[opt for opt, _ in mapped]) if metadata.has_section('bundles'): bundle_tests = devenv and metadata.has_option('general', 'testScripts') create_bundles(params, files, bundle_tests) if metadata.has_section('preprocess'): files.preprocess( [f for f, _ in metadata.items('preprocess')], {'needsExt': True}, ) if metadata.has_section('import_locales'): import_locales(params, files) files['manifest.json'] = createManifest(params, files) if type == 'chrome': fix_translations_for_chrome(files) if devenv: add_devenv_requirements(files, metadata, params) zipdata = files.zipToString() signature = None pubkey = None if keyFile != None: signature = signBinary(zipdata, keyFile) pubkey = getPublicKey(keyFile) writePackage(outFile, pubkey, signature, zipdata)
def createBuild(baseDir, type='chrome', outFile=None, buildNum=None, releaseBuild=False, keyFile=None, experimentalAPI=False, devenv=False): metadata = readMetadata(baseDir, type) version = getBuildVersion(baseDir, metadata, releaseBuild, buildNum) if outFile == None: outFile = getDefaultFileName(baseDir, metadata, version, 'crx' if keyFile else 'zip') params = { 'type': type, 'baseDir': baseDir, 'releaseBuild': releaseBuild, 'version': version, 'experimentalAPI': experimentalAPI, 'devenv': devenv, 'metadata': metadata, } files = Files(getPackageFiles(params), getIgnoredFiles(params), process=lambda path, data: processFile(path, data, params)) files['manifest.json'] = createManifest(params) if metadata.has_section('mapping'): files.readMappedFiles(metadata.items('mapping')) files.read(baseDir) if metadata.has_section('convert_js'): convertJS(params, files) if metadata.has_section('import_locales'): importGeckoLocales(params, files) if devenv: files['devenvPoller__.js'] = createPoller(params) zipdata = files.zipToString() signature = None pubkey = None if keyFile != None: signature = signBinary(zipdata, keyFile) pubkey = getPublicKey(keyFile) writePackage(outFile, pubkey, signature, zipdata)
def createBuild(baseDir, type='chrome', outFile=None, buildNum=None, releaseBuild=False, keyFile=None, devenv=False): metadata = readMetadata(baseDir, type) version = getBuildVersion(baseDir, metadata, releaseBuild, buildNum) if outFile == None: outFile = getDefaultFileName(metadata, version, 'crx' if keyFile else 'zip') params = { 'type': type, 'baseDir': baseDir, 'releaseBuild': releaseBuild, 'version': version, 'devenv': devenv, 'metadata': metadata, } mapped = metadata.items('mapping') if metadata.has_section('mapping') else [] files = Files(getPackageFiles(params), getIgnoredFiles(params), process=lambda path, data: processFile(path, data, params)) files.readMappedFiles(mapped) files.read(baseDir, skip=[opt for opt, _ in mapped]) if metadata.has_section('convert_js'): convertJS(params, files) if metadata.has_section('preprocess'): files.preprocess( [f for f, _ in metadata.items('preprocess')], {'needsExt': True} ) if metadata.has_section('import_locales'): importGeckoLocales(params, files) files['manifest.json'] = createManifest(params, files) if type == 'chrome': fixTranslationsForCWS(files) if devenv: import buildtools import random files.read(os.path.join(buildtools.__path__[0], 'chromeDevenvPoller__.js'), relpath='devenvPoller__.js') files['devenvVersion__'] = str(random.random()) if (metadata.has_option('general', 'backgroundScripts') and 'lib/info.js' in metadata.get('general', 'backgroundScripts').split() and 'lib/info.js' not in files): files['lib/info.js'] = createInfoModule(params) if metadata.has_option('general', 'testScripts'): files['qunit/index.html'] = createScriptPage(params, 'testIndex.html.tmpl', ('general', 'testScripts')) zipdata = files.zipToString() signature = None pubkey = None if keyFile != None: signature = signBinary(zipdata, keyFile) pubkey = getPublicKey(keyFile) writePackage(outFile, pubkey, signature, zipdata)
def createBuild(baseDir, type='chrome', outFile=None, buildNum=None, releaseBuild=False, keyFile=None, devenv=False): metadata = readMetadata(baseDir, type) version = getBuildVersion(baseDir, metadata, releaseBuild, buildNum) if outFile == None: outFile = getDefaultFileName(metadata, version, 'crx' if keyFile else 'zip') params = { 'type': type, 'baseDir': baseDir, 'releaseBuild': releaseBuild, 'version': version, 'devenv': devenv, 'metadata': metadata, } mapped = metadata.items('mapping') if metadata.has_section( 'mapping') else [] files = Files(getPackageFiles(params), getIgnoredFiles(params), process=lambda path, data: processFile(path, data, params)) files.readMappedFiles(mapped) files.read(baseDir, skip=[opt for opt, _ in mapped]) if metadata.has_section('convert_js'): convertJS(params, files) if metadata.has_section('preprocess'): files.preprocess([f for f, _ in metadata.items('preprocess')], {'needsExt': True}) if metadata.has_section('import_locales'): importGeckoLocales(params, files) files['manifest.json'] = createManifest(params, files) if type == 'chrome': fixTranslationsForCWS(files) if devenv: import buildtools import random files.read(os.path.join(buildtools.__path__[0], 'chromeDevenvPoller__.js'), relpath='devenvPoller__.js') files['devenvVersion__'] = str(random.random()) if (metadata.has_option('general', 'backgroundScripts') and 'lib/info.js' in metadata.get('general', 'backgroundScripts').split() and 'lib/info.js' not in files): files['lib/info.js'] = createInfoModule(params) if metadata.has_option('general', 'testScripts'): files['qunit/index.html'] = createScriptPage( params, 'testIndex.html.tmpl', ('general', 'testScripts')) zipdata = files.zipToString() signature = None pubkey = None if keyFile != None: signature = signBinary(zipdata, keyFile) pubkey = getPublicKey(keyFile) writePackage(outFile, pubkey, signature, zipdata)