# HG changeset patch # User Tero Marttila # Date 1403266104 -10800 # Node ID d03919dc11ccb8bc946d0b7fbbe7801bc5dc73fe # Parent 8fcb140f1ee0981efa5c492756521d21c5475c16# Parent 1053e69664a699e9ef6e1048cf948f0ef72f020a merge diff -r 8fcb140f1ee0 -r d03919dc11cc pvl/invoke.py --- 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