From 4217a9ca7ebb8c58f55e937aaf81e9e637588d63 Mon Sep 17 00:00:00 2001 From: behlec <33778676+behlec@users.noreply.github.com> Date: Sat, 9 Dec 2017 00:52:13 +0100 Subject: [PATCH] Check for more errors when executing subprocess. (#2746) --- mesonbuild/scripts/commandrunner.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/mesonbuild/scripts/commandrunner.py b/mesonbuild/scripts/commandrunner.py index fdca7cd5f..fc65e5b69 100644 --- a/mesonbuild/scripts/commandrunner.py +++ b/mesonbuild/scripts/commandrunner.py @@ -31,10 +31,9 @@ def run_command(source_dir, build_dir, subdir, meson_command, command, arguments exe = shutil.which(command) if exe is not None: command_array = [exe] + arguments - return subprocess.Popen(command_array, env=child_env, cwd=cwd) - # No? Maybe it is a script in the source tree. - fullpath = os.path.join(source_dir, subdir, command) - command_array = [fullpath] + arguments + else:# No? Maybe it is a script in the source tree. + fullpath = os.path.join(source_dir, subdir, command) + command_array = [fullpath] + arguments try: return subprocess.Popen(command_array, env=child_env, cwd=cwd) except FileNotFoundError: @@ -43,6 +42,13 @@ def run_command(source_dir, build_dir, subdir, meson_command, command, arguments except PermissionError: print('Could not execute command "%s". File not executable.' % command) sys.exit(1) + except OSError as err: + print('Could not execute command "{}": {}'.format(command, err)) + sys.exit(1) + except subprocess.SubprocessError as err: + print('Could not execute command "{}": {}'.format(command, err)) + sys.exit(1) + def run(args): if len(args) < 4: