Index: third_party/mojo/src/mojo/public/tools/gn/unzip.py |
diff --git a/third_party/mojo/src/mojo/public/tools/gn/unzip.py b/third_party/mojo/src/mojo/public/tools/gn/unzip.py |
new file mode 100755 |
index 0000000000000000000000000000000000000000..988fc0805de6956344ac04ae33514c824bb59192 |
--- /dev/null |
+++ b/third_party/mojo/src/mojo/public/tools/gn/unzip.py |
@@ -0,0 +1,46 @@ |
+#!/usr/bin/env python |
+# |
+# Copyright 2015 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+"""Extracts a set of zip archives. """ |
+ |
+import ast |
+import optparse |
+import os |
+import sys |
+import zipfile |
+ |
+def DoUnzip(inputs, output): |
+ if not os.path.exists(output): |
+ os.makedirs(output) |
+ for i in inputs: |
+ with zipfile.ZipFile(i) as zf: |
+ zf.extractall(output) |
+ |
+ |
+def main(): |
+ parser = optparse.OptionParser() |
+ |
+ parser.add_option('--inputs', help='List of archives to extract.') |
+ parser.add_option('--output', help='Path to unzip the archives to.') |
+ parser.add_option('--timestamp', help='Path to a timestamp file.') |
+ |
+ options, _ = parser.parse_args() |
+ |
+ inputs = [] |
+ if (options.inputs): |
+ inputs = ast.literal_eval(options.inputs) |
+ |
+ DoUnzip(inputs, options.output) |
+ |
+ if options.timestamp: |
+ if os.path.exists(options.timestamp): |
+ os.utime(options.timestamp, None) |
+ else: |
+ with open(options.timestamp, 'a'): |
+ pass |
+ |
+if __name__ == '__main__': |
+ sys.exit(main()) |