Index: build/android/pylib/utils/zip_utils.py |
diff --git a/build/android/pylib/utils/zip_utils.py b/build/android/pylib/utils/zip_utils.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..d799463f9042b8a99ae0da2dc88d5183164be2c4 |
--- /dev/null |
+++ b/build/android/pylib/utils/zip_utils.py |
@@ -0,0 +1,31 @@ |
+# 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. |
+ |
+import logging |
+import os |
+import zipfile |
+ |
+ |
+def WriteToZipFile(zip_file, path, arc_path): |
+ """Recursively write |path| to |zip_file| as |arc_path|. |
+ |
+ zip_file: An open instance of zipfile.ZipFile. |
+ path: An absolute path to the file or directory to be zipped. |
+ arc_path: A relative path within the zip file to which the file or directory |
+ located at |path| should be written. |
+ """ |
+ if os.path.isdir(path): |
+ for dir_path, _, file_names in os.walk(path): |
+ dir_arc_path = os.path.join(arc_path, os.path.relpath(dir_path, path)) |
+ logging.debug('dir: %s -> %s', dir_path, dir_arc_path) |
+ zip_file.write(dir_path, dir_arc_path, zipfile.ZIP_STORED) |
+ for f in file_names: |
+ file_path = os.path.join(dir_path, f) |
+ file_arc_path = os.path.join(dir_arc_path, f) |
+ logging.debug('file: %s -> %s', file_path, file_arc_path) |
+ zip_file.write(file_path, file_arc_path, zipfile.ZIP_DEFLATED) |
+ else: |
+ logging.debug('file: %s -> %s', path, arc_path) |
+ zip_file.write(path, arc_path, zipfile.ZIP_DEFLATED) |
+ |