Fix creating zip distribution on Windows.
authorCheng Zhao <zcbenz@gmail.com>
Sat, 26 Oct 2013 09:23:16 +0000 (17:23 +0800)
committerCheng Zhao <zcbenz@gmail.com>
Sat, 26 Oct 2013 09:23:16 +0000 (17:23 +0800)
script/create-dist.py
script/lib/util.py

index a948def..0081bc3 100755 (executable)
@@ -136,10 +136,9 @@ def create_zip():
   zip_file = os.path.join(SOURCE_ROOT, 'dist', dist_name)
 
   with scoped_cwd(DIST_DIR):
-    files = TARGET_BINARIES[TARGET_PLATFORM] +  \
-            TARGET_DIRECTORIES[TARGET_PLATFORM] + \
-            ['LICENSE', 'version']
-    make_zip(zip_file, files)
+    files = TARGET_BINARIES[TARGET_PLATFORM] +  ['LICENSE', 'version']
+    dirs = TARGET_DIRECTORIES[TARGET_PLATFORM]
+    make_zip(zip_file, files, dirs)
 
 
 def create_header_tarball():
index 411bce8..af71468 100644 (file)
@@ -64,14 +64,19 @@ def extract_zip(zip_path, destination):
     with zipfile.ZipFile(zip_path) as z:
       z.extractall(destination)
 
-def make_zip(zip_file_path, files):
+def make_zip(zip_file_path, files, dirs):
   safe_unlink(zip_file_path)
   if sys.platform == 'darwin':
+    files += dirs
     subprocess.check_call(['zip', '-r', '-y', zip_file_path] + files)
   else:
     zip_file = zipfile.ZipFile(zip_file_path, "w")
     for filename in files:
       zip_file.write(filename, filename)
+    for dirname in dirs:
+      for root, _, filenames in os.walk(dirname):
+        for f in filenames:
+          zip_file.write(os.path.join(root, f))
     zip_file.close()