From 2c30652840889cd2e1c5e15574e93aefdb720fcf Mon Sep 17 00:00:00 2001 From: Alex Xu Date: Sat, 6 Dec 2014 23:52:16 -0500 Subject: Initial commit --- utils/create_xpi.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100755 utils/create_xpi.py (limited to 'utils/create_xpi.py') diff --git a/utils/create_xpi.py b/utils/create_xpi.py new file mode 100755 index 0000000..e14cd49 --- /dev/null +++ b/utils/create_xpi.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python2.7 + +# Uses the Python zip implementation to create deterministic XPI's +# Author: Yan Zhu, yan@mit.edu + +""" +Usage: python create_xpi.py -x -n +""" + +import argparse +import zipfile_deterministic as zipfile +import sys +import glob + +parser = argparse.ArgumentParser( + description="Deterministic XPI file creator.") +parser.add_argument("-x", type=str, nargs="?", + dest="exclusions", metavar="File with file pattern exclusions", + default=".build_exclusions", help="Excluded file patterns.") +parser.add_argument("-n", type=str, + dest="xpiname", help="Name of target XPI file.") +parser.add_argument("directory", type=str, + help="Directory to compress.") + +args = parser.parse_args() + +exclusions = [] +with open(args.exclusions) as f: + for line in f: + exclusions.extend(glob.glob(line.strip())) +exclusions = map(lambda x: './'+x, exclusions) + +compress = zipfile.ZIP_DEFLATED + +xpiFile = zipfile.ZipFile(args.xpiname, mode='w', compression=compress) + +xpiFile.write_from_directory(args.directory, exclusions, compress_type=compress) +xpiFile.close() -- cgit v1.2.3-54-g00ecf