diff --git a/install.sh b/install.sh index a408015..0066c2f 100644 --- a/install.sh +++ b/install.sh @@ -331,7 +331,10 @@ with tarfile.open(archive) as tf: name = member.name.lstrip('./') if not name or name.startswith('/') or '..' in pathlib.PurePosixPath(name).parts or member.issym() or member.islnk() or not (member.isfile() or member.isdir()): raise SystemExit(1) member.name = name - tf.extractall(target, members=members, filter='data') + try: + tf.extractall(target, members=members, filter='data') + except TypeError: + tf.extractall(target, members=members) PY cp "$downloaded" "$archive.tmp"; printf '%s\n' "$version" >"$marker_version.tmp"; printf '%s\n' "$sha" >"$marker_sha.tmp" mv -f "$archive.tmp" "$archive"; mv -f "$marker_version.tmp" "$marker_version"; mv -f "$marker_sha.tmp" "$marker_sha"; rm -rf "$stage" @@ -1119,7 +1122,10 @@ with tarfile.open(archive, 'r:*') as tf: if m.issym() or m.islnk() or not (m.isfile() or m.isdir()): raise SystemExit('archive contains link or special file') m.name = name - tf.extractall(target, members=members, filter='data') + try: + tf.extractall(target, members=members, filter='data') + except TypeError: + tf.extractall(target, members=members) PY cp "$archive" "$target/.download.archive" rm -f "$tarball"