merge
authorTero Marttila <terom@paivola.fi>
Fri, 20 Jun 2014 15:08:24 +0300
changeset 31 d03919dc11cc
parent 29 8fcb140f1ee0 (current diff)
parent 30 1053e69664a6 (diff)
child 32 ee6969dc9980
merge
--- a/pvl/invoke.py	Sun Jun 15 19:43:13 2014 +0300
+++ b/pvl/invoke.py	Fri Jun 20 15:08:24 2014 +0300
@@ -2,8 +2,9 @@
     Invoke external commands, with python kwargs -> options mangling.
 """
 
+import logging
+import os
 import subprocess
-import logging
 
 log = logging.getLogger('pvl.invoke')
 
@@ -16,7 +17,7 @@
     def __str__ (self) :
         return "{self.cmd} failed ({self.exit}): {self.error}".format(self=self)
 
-def invoke (cmd, args, stdin=None) :
+def invoke (cmd, args, stdin=None, setenv=None) :
     """
         Invoke a command directly.
         
@@ -45,7 +46,14 @@
         io = subprocess.PIPE
         input = None
 
-    p = subprocess.Popen([cmd] + args, stdin=io, stdout=io, stderr=io)
+    if setenv :
+        env = dict(os.environ)
+        env.update(setenv)
+
+    else :
+        env = None
+
+    p = subprocess.Popen([cmd] + list(args), stdin=io, stdout=io, stderr=io, env=env)
 
     # get output
     # returns None if not io