[PATCH 14/22] Add a parameter to iutil.startProgram to extend the environment
David Shea
dshea at redhat.com
Wed Jun 3 16:03:38 UTC 2015
This can be used to add environment variables for a single child process
without modifying the global environment.
(cherry picked from commit 7b567220821376177b4a5832d5e446d39f1acced)
Related: rhbz#1188287
---
pyanaconda/iutil.py | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/pyanaconda/iutil.py b/pyanaconda/iutil.py
index 6432ecf..51525cb 100644
--- a/pyanaconda/iutil.py
+++ b/pyanaconda/iutil.py
@@ -114,7 +114,7 @@ def setSysroot(path):
_sysroot = path
def startProgram(argv, root='/', stdin=None, stdout=subprocess.PIPE, stderr=subprocess.STDOUT,
- env_prune=None, reset_handlers=True, **kwargs):
+ env_prune=None, env_add=None, reset_handlers=True, **kwargs):
""" Start an external program and return the Popen object.
The root and reset_handlers arguments are handled by passing a
@@ -127,7 +127,8 @@ def startProgram(argv, root='/', stdin=None, stdout=subprocess.PIPE, stderr=subp
:param stdin: The file object to read stdin from.
:param stdout: The file object to write stdout to.
:param stderr: The file object to write stderr to.
- :param env_prune: environment variable to remove before execution
+ :param env_prune: environment variables to remove before execution
+ :param env_add: environment variables to add before execution
:param reset_handlers: whether to reset to SIG_DFL any signal handlers set to SIG_IGN
:param kwargs: Additional parameters to pass to subprocess.Popen
:return: A Popen object for the running command.
@@ -169,6 +170,9 @@ def startProgram(argv, root='/', stdin=None, stdout=subprocess.PIPE, stderr=subp
for var in env_prune:
env.pop(var, None)
+ if env_add:
+ env.update(env_add)
+
return subprocess.Popen(argv,
stdin=stdin,
stdout=stdout,
--
2.1.0
More information about the anaconda-patches
mailing list