瀏覽代碼

Meta: Extract .zip file directories in an encoding-agnostic manner

The current implementation fails if a file in the archive is not valid
UTF-8. The CLDR 44.0.1 package unfortunately contains such files (it
errantly has .DS_Store files).
Timothy Flynn 1 年之前
父節點
當前提交
19d50ee2c2
共有 1 個文件被更改,包括 2 次插入6 次删除
  1. 2 6
      Meta/gn/build/extract_archive_contents.py

+ 2 - 6
Meta/gn/build/extract_archive_contents.py

@@ -47,15 +47,11 @@ def extract_directory(file, destination, path):
     destination_path.mkdir(parents=True, exist_ok=True)
     if not isinstance(file, zipfile.ZipFile):
         raise NotImplementedError
+
     # FIXME: This loops over the entire archive len(args.paths) times. Decrease complexity
     for entry in file.namelist():
         if entry.startswith(path):
-            entry_destination = destination / entry
-            if entry.endswith('/'):
-                entry_destination.mkdir(exist_ok=True)
-                continue
-            with file.open(entry) as member:
-                entry_destination.write_text(member.read().decode('utf-8'))
+            file.extract(entry, destination)
 
 
 def main():