Ejemplo n.º 1
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
Ejemplo n.º 2
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
Ejemplo n.º 3
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