fix(util): support shells passing subshell fd as /dev/fd

This adds support orthogonal to shells that pass subshell fd as
/proc/self/fd.
This commit is contained in:
Levente Polyak 2022-05-10 19:13:27 +02:00 committed by David Runge
parent 9f0db89a0a
commit db84e8208d
No known key found for this signature in database
GPG Key ID: 7258734B41C31549

View File

@ -162,7 +162,8 @@ def transform_fd_to_tmpfile(working_dir: Path, sources: List[Path]) -> None:
sources: Paths that should be iterated and all fd's transformed to tmpfiles sources: Paths that should be iterated and all fd's transformed to tmpfiles
""" """
for index, source in enumerate(sources): for index, source in enumerate(sources):
if str(source).startswith("/proc/self/fd"): source_str = str(source)
if source_str.startswith("/proc/self/fd/") or source_str.startswith("/dev/fd/"):
file = mkstemp(dir=working_dir, prefix=f"{source.name}", suffix=".fd")[1] file = mkstemp(dir=working_dir, prefix=f"{source.name}", suffix=".fd")[1]
with open(file, mode="wb") as f: with open(file, mode="wb") as f:
f.write(source.read_bytes()) f.write(source.read_bytes())