Skip to content

Commit

Permalink
fix(tools): Restore file permissions when extracting zip on unix
Browse files Browse the repository at this point in the history
  • Loading branch information
Marek Fiala authored and elipsitz committed Sep 26, 2024
1 parent a13ab34 commit 59f7f8d
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions tools/idf_tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -434,6 +434,14 @@ def unpack(filename, destination): # type: (str, str) -> None
# https://bugs.python.org/issue17153
destination = str(destination)
archive_obj.extractall(destination)
# ZipFile on Unix systems does not preserve file permissions while extracting it
# We need to reset the permissions afterward
if sys.platform != 'win32' and filename.endswith('zip') and isinstance(archive_obj, ZipFile):
for file_info in archive_obj.infolist():
extracted_file = os.path.join(destination, file_info.filename)
extracted_permissions = file_info.external_attr >> 16 & 0o777 # Extract Unix permissions
if os.path.exists(extracted_file):
os.chmod(extracted_file, extracted_permissions)


def splittype(url): # type: (str) -> Tuple[Optional[str], str]
Expand Down

0 comments on commit 59f7f8d

Please sign in to comment.