From 994647ea63959a1bcff19e58f535dc69c95c69ec Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 8 Jul 2023 16:45:01 +0300 Subject: feat: log prettier when running commands Sponsored-by: author --- v-i | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/v-i b/v-i index e25a3dc..9f34eea 100755 --- a/v-i +++ b/v-i @@ -33,14 +33,25 @@ def error(msg): def run(argv, **kwargs): - log(f"RUN: {argv} {kwargs}") + log(f"RUN: {argv[0]}") + for arg in argv: + log(f"RUN: - {arg!r}") + for key in kwargs: + log(f"RUN: - {key}={kwargs[key]!r}") check = False - if "check" in kwargs: + if kwargs.get("check"): check = True del kwargs["check"] + if "capture_output" not in kwargs: + kwargs["capture_output"] = True p = subprocess.run(argv, **kwargs) if check and p.returncode != 0: - error(f"Ran command that failed: {argv}\n{p.stderr.decode()}") + stdout = indent(p.stdout.decode()) + stderr = indent(p.stderr.decode()) + error(f"Ran command that failed: {argv}") + error(f"Exit code {p.returncode}") + error(f"Stdout:\n{stdout}") + error(f"Stderr:\n{stderr}") sys.exit("command failed") return p -- cgit v1.2.1