aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Components
diff options
context:
space:
mode:
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>2010-03-08 16:16:28 +0100
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>2010-03-12 23:46:18 +0100
commit3deb2fa4815db8b8497d5cafdb94dc92717979e7 (patch)
tree055ecc985ffb74cb351e4b122d909f462b96029e /lib/python/Components
parent6be8aade7cb66ee77fa3d7c5fb8002789e2efdef (diff)
downloadenigma2-3deb2fa4815db8b8497d5cafdb94dc92717979e7.tar.gz
enigma2-3deb2fa4815db8b8497d5cafdb94dc92717979e7.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/Components')
-rw-r--r--lib/python/Components/Task.py14
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)