procgen-build/procgen_build/common.py (15 lines of code) (raw):

import subprocess as sp import time import shlex def run(cmd, shell=True, **kwargs): print(f"RUN: {cmd}") start = time.time() if not shell: cmd = shlex.split(cmd) p = sp.run(cmd, shell=shell, encoding="utf8", **kwargs) print(f"ELAPSED: {time.time() - start}") if p.returncode != 0: print(f"cmd {cmd} failed") if p.stdout is not None: print(p.stdout[-100000:]) raise Exception(f"command {cmd} failed")