diff options
| author | Stefan Pluecken <stefan.pluecken@multimedia-labs.de> | 2010-03-08 16:16:28 +0100 |
|---|---|---|
| committer | Stefan Pluecken <stefan.pluecken@multimedia-labs.de> | 2010-03-08 16:21:27 +0100 |
| commit | bb4afcfbede3c7e04bc6c9213818cc5d9a60887c (patch) | |
| tree | efde7237c53736b074b2be61b3a86509c5908c50 /lib/python | |
| parent | a35c57a736086abaef5a82e2e117a12e3a79b273 (diff) | |
| download | enigma2-bb4afcfbede3c7e04bc6c9213818cc5d9a60887c.tar.gz enigma2-bb4afcfbede3c7e04bc6c9213818cc5d9a60887c.zip | |
refs bug #429
use PATH variable to determine, if an executable file exists instead of just parsing the command string for a leading /
Diffstat (limited to 'lib/python')
| -rw-r--r-- | lib/python/Components/Task.py | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/lib/python/Components/Task.py b/lib/python/Components/Task.py index df94f8a6..86bd233e 100644 --- a/lib/python/Components/Task.py +++ b/lib/python/Components/Task.py @@ -370,12 +370,14 @@ class DiskspacePrecondition(Condition): class ToolExistsPrecondition(Condition): def check(self, task): import os - if task.cmd[0]=='/': - realpath = task.cmd - else: - realpath = task.cwd + '/' + task.cmd - self.realpath = realpath - return os.access(realpath, os.X_OK) + + self.realpath = task.cmd + path = os.environ.get('PATH', '').split(os.pathsep) + absolutes = filter(lambda file: os.access(file, os.X_OK), map(lambda directory, file = task.cmd: os.path.join(directory, file), path)) + if len(absolutes) > 0: + self.realpath = task.cmd[0] + return True + return False def getErrorMessage(self, task): return _("A required tool (%s) was not found.") % (self.realpath) |
