1#!/usr/bin/env python 2# 3# Copyright 2014 The Chromium Authors. All rights reserved. 4# Use of this source code is governed by a BSD-style license that can be 5# found in the LICENSE file. 6 7"""Archives a set of files. 8""" 9 10import ast 11import optparse 12import os 13import sys 14import zipfile 15 16def DoZip(inputs, output, base_dir): 17 with zipfile.ZipFile(output, 'w') as outfile: 18 for f in inputs: 19 outfile.write(f, os.path.relpath(f, base_dir)) 20 21def main(): 22 parser = optparse.OptionParser() 23 parser.add_option('--inputs', help='List of files to archive.') 24 parser.add_option('--output', help='Path to output archive.') 25 parser.add_option('--base-dir', 26 help='If provided, the paths in the archive will be ' 27 'relative to this directory', default='.') 28 29 options, _ = parser.parse_args() 30 31 inputs = ast.literal_eval(options.inputs) 32 output = options.output 33 base_dir = options.base_dir 34 35 DoZip(inputs, output, base_dir) 36 37 38if __name__ == '__main__': 39 sys.exit(main()) 40