zulip_tools: Improve error for `run` subprocess killed by signal.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
Anders Kaseorg 2023-03-08 17:50:11 -08:00 committed by Tim Abbott
parent 3e24a05e66
commit f66136fcc2
1 changed files with 19 additions and 5 deletions

View File

@ -12,6 +12,7 @@ import random
import re
import shlex
import shutil
import signal
import subprocess
import sys
import time
@ -236,10 +237,23 @@ def run(args: Sequence[str], **kwargs: Any) -> None:
try:
subprocess.check_call(args, **kwargs)
except subprocess.CalledProcessError:
except subprocess.CalledProcessError as error:
print()
if error.returncode < 0:
try:
signal_name = signal.Signals(-error.returncode).name
except ValueError:
signal_name = f"unknown signal {-error.returncode}"
print(
WHITEONRED + f"Error running a subcommand of {sys.argv[0]}: {shlex.join(args)}" + ENDC
WHITEONRED
+ f"Subcommand of {sys.argv[0]} died with {signal_name}: {shlex.join(args)}"
+ ENDC
)
else:
print(
WHITEONRED
+ f"Subcommand of {sys.argv[0]} failed with exit status {error.returncode}: {shlex.join(args)}"
+ ENDC
)
print(WHITEONRED + "Actual error output for the subcommand is just above this." + ENDC)
print()