From c0c2c35496f2832fee7623ec268e87e23b58a33f Mon Sep 17 00:00:00 2001 From: Jussi Pakkanen Date: Mon, 1 Jul 2013 18:12:30 +0300 Subject: Windows command execution works. --- interpreter.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'interpreter.py') diff --git a/interpreter.py b/interpreter.py index 0be909a01..15f05cd7a 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) -- cgit v1.2.3