refs bug #429
authorStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Mon, 8 Mar 2010 16:25:37 +0000 (17:25 +0100)
committerStefan Pluecken <stefan.pluecken@multimedia-labs.de>
Fri, 12 Mar 2010 22:46:35 +0000 (23:46 +0100)
- allow absolute path names in Task.py but print a warning
- search in task.cwd as well

lib/python/Components/Task.py

index 86bd233..a1e04bc 100644 (file)
@@ -371,12 +371,18 @@ class ToolExistsPrecondition(Condition):
        def check(self, task):
                import os
                
-               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
+               if task.cmd[0]=='/':
+                       self.realpath = task.cmd
+                       print "[Task.py][ToolExistsPrecondition] WARNING: usage of absolute paths for tasks should be avoided!" 
+                       return os.access(self.realpath, os.X_OK)
+               else:
+                       self.realpath = task.cmd
+                       path = os.environ.get('PATH', '').split(os.pathsep)
+                       path.append(task.cwd + '/')
+                       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):