aboutsummaryrefslogtreecommitdiff
path: root/interpreter.py
diff options
context:
space:
mode:
Diffstat (limited to 'interpreter.py')
-rw-r--r--interpreter.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/interpreter.py b/interpreter.py
index 0be909a..15f05cd 100644
--- a/interpreter.py
+++ b/interpreter.py
@@ -17,7 +17,7 @@ import nodes
import environment
import coredata
import dependencies
-import os, sys, platform, copy, subprocess
+import os, sys, platform, copy, subprocess, shutil
class InterpreterException(coredata.MesonException):
pass
@@ -57,8 +57,13 @@ class RunProcess(InterpreterObject):
return subprocess.Popen(command_array, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
except FileNotFoundError:
pass
- # Was not a command, try to run as a script relative to current dir.
- fullpath = os.path.join(curdir, command_array[0])
+ # Was not a command, is a program in path?
+ exe = shutil.which(cmd_name)
+ if exe is not None:
+ command_array = [exe] + command_array[1:]
+ return subprocess.Popen(command_array, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ # No? Maybe it is a script in the source tree.
+ fullpath = os.path.join(curdir, cmd_name)
command_array = [fullpath] + command_array[1:]
try:
return subprocess.Popen(command_array, stdout=subprocess.PIPE, stderr=subprocess.PIPE)