[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