diff --git a/download-latest-firmware-build.py b/download-latest-firmware-build.py index 29cdacdfc23b3439da06e479833be14fc056843d..409e02ceee30f2dd4ca22e3b8d1355c404100376 100755 --- a/download-latest-firmware-build.py +++ b/download-latest-firmware-build.py @@ -10,6 +10,7 @@ import os.path import re import tempfile import sys +import subprocess GITLAB_API_BASE = "https://gitlab.freifunk-stuttgart.de/api/v4" PROJECT_ID = 1 @@ -34,7 +35,9 @@ def extract_zip(artifact_zipfile): with zipfile.ZipFile(artifact_zipfile) as artifact_zip: version = find_version_from_archive(artifact_zip.infolist()) with tempfile.TemporaryDirectory(dir=os.getcwd()) as tempdir: - artifact_zip.extractall(tempdir) + # Python ZipFile doesn't support symlinks + # https://bugs.python.org/issue27318 + subprocess.check_call(['unzip', artifact_zipfile.name, '-d{}'.format(tempdir)], stdin=artifact_zipfile) outputdir = os.path.join(tempdir, "gluon", "output") os.rename(outputdir, version) return version