[master 13/16] Always return strings from regular capture output run functions

M4rtinK installerbot-noreply at redhat.com
Fri Apr 10 13:38:19 UTC 2015


From: Martin Kolman <mkolman at redhat.com>

And add functions that always return binary data.
---
 blivet/util.py | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/blivet/util.py b/blivet/util.py
index 5ce2770..2a7192a 100644
--- a/blivet/util.py
+++ b/blivet/util.py
@@ -25,7 +25,7 @@
 program_log_lock = Lock()
 
 
-def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=False):
+def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=False, binary_output=False):
     if env_prune is None:
         env_prune = []
 
@@ -55,6 +55,8 @@ def chroot():
                                     preexec_fn=chroot, cwd=root, env=env)
 
             out, err = proc.communicate()
+            if not binary_output and six.PY3:
+                out = out.decode("utf-8")
             if out:
                 if not stderr_to_stdout:
                     program_log.info("stdout:")
@@ -80,9 +82,17 @@ def run_program(*args, **kwargs):
 def capture_output(*args, **kwargs):
     return _run_program(*args, **kwargs)[1]
 
+def capture_output_binary(*args, **kwargs):
+    kwargs["binary_output"] = True
+    return _run_program(*args, **kwargs)[1]
+
 def run_program_and_capture_output(*args, **kwargs):
     return _run_program(*args, **kwargs)
 
+def run_program_and_capture_output_binary(*args, **kwargs):
+    kwargs["binary_output"] = True
+    return _run_program(*args, **kwargs)
+
 def mount(device, mountpoint, fstype, options=None):
     if options is None:
         options = "defaults"


-- 
To view this commit on github, visit https://github.com/rhinstaller/blivet/commit/beff7799b047777d7a22b0659f3effc1db652d41


More information about the anaconda-patches mailing list