Files
scale-build/scale_build/utils/run.py

16 lines
518 B
Python

import subprocess
def run(*args, **kwargs):
if isinstance(args[0], list):
args = tuple(args[0])
kwargs.setdefault('stdout', subprocess.PIPE)
kwargs.setdefault('stderr', subprocess.PIPE)
check = kwargs.pop('check', True)
proc = subprocess.Popen(args, stdout=kwargs['stdout'], stderr=kwargs['stderr'])
stdout, stderr = proc.communicate()
cp = subprocess.CompletedProcess(args, proc.returncode, stdout=stdout, stderr=stderr)
if check:
cp.check_returncode()
return cp