def build(basedir, outfile): basedir = path(basedir) if not basedir.endswith("/"): basedir += "/" jar_files = (path(__file__).dirname() / "jar.files").lines(retain=False) xpi_files = (path(__file__).dirname() / "xpi.files").lines(retain=False) print "verifying locales" try: cmp_listed_locales(basedir) except: print >> sys.stderr, "WARN: locales did not verify" with ZipFileMinorCompression(), BytesIO() as xpi: with ZipOutFile(xpi, method=ZIP_DEFLATED) as zp: print "zipping regular files" zip_files(zp, xpi_files, basedir) print "creating inner jar" with BytesIO() as jar: with ZipOutFile(jar) as jp: zip_files(jp, jar_files, basedir / "chrome/") zp.writestr(ZipOutInfo("chrome.jar"), jar.read()) print "writing manifest" with open("chrome.manifest") as mf: manifest = "\n".join( (chromejar_line(l.strip()) for l in mf.readlines())) zp.writestr(ZipOutInfo("chrome.manifest"), manifest) print "writing xpi" with open(outfile, "wb") as op: op.write(xpi.read()) print "done!" return 0
def build(basedir, outfile): basedir = path(basedir) if not basedir.endswith("/"): basedir += "/" jar_files = (path(__file__).dirname() / "jar.files").lines(retain=False) xpi_files = (path(__file__).dirname() / "xpi.files").lines(retain=False) print "verifying locales" try: cmp_listed_locales(basedir) except: print >> sys.stderr, "WARN: locales did not verify" with ZipFileMinorCompression(), BytesIO() as xpi: with ZipOutFile(xpi, method=ZIP_DEFLATED) as zp: print "zipping regular files" zip_files(zp, xpi_files, basedir) print "creating inner jar" with BytesIO() as jar: with ZipOutFile(jar) as jp: zip_files(jp, jar_files, basedir / "chrome/") zp.writestr(ZipOutInfo("chrome.jar"), jar.read()) print "writing manifest" with open("chrome.manifest") as mf: manifest = "\n".join((chromejar_line(l.strip()) for l in mf.readlines())) zp.writestr(ZipOutInfo("chrome.manifest"), manifest) print "writing xpi" with open(outfile, "wb") as op: op.write(xpi.read()) print "done!" return 0
def main(): basedir = path(__file__).dirname() cmp_listed_locales(basedir) with BytesIO() as xpi: zip_files(xpi, xpi_files, basedir) with ZipOutFile(xpi) as zp: with BytesIO() as jar: zip_files(jar, jar_files, basedir / "chrome/") zp.writestr("chrome.jar", jar.read()) with open("chrome.manifest") as mf: manifest = "\n".join((chromejar_line(l.strip()) for l in mf.readlines() )) zp.writestr("chrome.manifest", manifest) with open("mintrayr.xpi", "wb") as op: op.write(xpi.read()) print "done!" return 0