diff options
author | Alex Xu <alex_y_xu@yahoo.ca> | 2014-12-06 23:52:16 -0500 |
---|---|---|
committer | Alex Xu <alex_y_xu@yahoo.ca> | 2014-12-07 00:06:53 -0500 |
commit | 2c30652840889cd2e1c5e15574e93aefdb720fcf (patch) | |
tree | 82def2bd41173dbb629e573cd8b53309120b36a1 /utils/create_xpi.py | |
download | eib-2c30652840889cd2e1c5e15574e93aefdb720fcf.tar.xz eib-2c30652840889cd2e1c5e15574e93aefdb720fcf.zip |
Initial commit
Diffstat (limited to 'utils/create_xpi.py')
-rwxr-xr-x | utils/create_xpi.py | 38 |
1 files changed, 38 insertions, 0 deletions
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 <exclusions> -n <name of zipped file> <directory> +""" + +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() |