Subprocess stderr goes to stdout on Mac and Windows too

This commit is contained in:
Joe Rickerby
2020-11-22 10:35:40 +00:00
parent e84c6b2de0
commit 05d7c142e9
2 changed files with 5 additions and 3 deletions
+2 -1
View File
@@ -22,7 +22,8 @@ def call(args: Union[str, Sequence[Union[str, PathLike]]], env: Optional[Dict[st
else:
print('+ ' + ' '.join(shlex.quote(str(a)) for a in args))
return subprocess.check_call(args, env=env, cwd=cwd, shell=shell)
# run the process. Subprocess stderr is routed to stdout to keep output interleaved
return subprocess.check_call(args, env=env, cwd=cwd, shell=shell, stderr=subprocess.STDOUT)
class PythonConfiguration(NamedTuple):
+3 -2
View File
@@ -25,12 +25,13 @@ def call(args: Sequence[Union[str, PathLike]], env: Optional[Dict[str, str]] = N
print('+ ' + ' '.join(str(a) for a in args))
# we use shell=True here, even though we don't need a shell due to a bug
# https://bugs.python.org/issue8557
subprocess.check_call([str(a) for a in args], env=env, cwd=cwd, shell=True)
subprocess.check_call([str(a) for a in args], env=env, cwd=cwd, shell=True, stderr=subprocess.STDOUT)
def shell(command: str, env: Optional[Dict[str, str]] = None, cwd: Optional[str] = None) -> None:
print(f'+ {command}')
subprocess.check_call(command, env=env, cwd=cwd, shell=True)
# route stderr to stdout so output remains interleaved
subprocess.check_call(command, env=env, cwd=cwd, shell=True, stderr=subprocess.STDOUT)
def get_nuget_args(version: str, arch: str) -> List[str]: