summaryrefslogtreecommitdiff
path: root/tools/patman
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2019-05-14 15:53:44 -0600
committerSimon Glass <sjg@chromium.org>2019-07-10 16:52:57 -0600
commita92939a4aa65700c3cdfa230fa986d40c508c5e6 (patch)
treea45fd979c1c7809fa4ced00e4870cf0bf1a29df5 /tools/patman
parent3e4b51e8d6dc86c0ea80552a1d2e19756b19e4a1 (diff)
patman: Provide a way to get program output in binary mode
At present cros_subprocess and the tools library use a string to obtain stdout from a program. This works fine on Python 2. With Python 3 we end up with unicode errors in some cases. Fix this by providing a binary mode, which returns the data as bytes() instead of a string. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'tools/patman')
-rw-r--r--tools/patman/cros_subprocess.py3
-rw-r--r--tools/patman/tools.py4
2 files changed, 4 insertions, 3 deletions
diff --git a/tools/patman/cros_subprocess.py b/tools/patman/cros_subprocess.py
index 0f0d60dfb7..06be64cc2c 100644
--- a/tools/patman/cros_subprocess.py
+++ b/tools/patman/cros_subprocess.py
@@ -54,7 +54,7 @@ class Popen(subprocess.Popen):
"""
def __init__(self, args, stdin=None, stdout=PIPE_PTY, stderr=PIPE_PTY,
- shell=False, cwd=None, env=None, **kwargs):
+ shell=False, cwd=None, env=None, binary=False, **kwargs):
"""Cut-down constructor
Args:
@@ -72,6 +72,7 @@ class Popen(subprocess.Popen):
"""
stdout_pty = None
stderr_pty = None
+ self.binary = binary
if stdout == PIPE_PTY:
stdout_pty = pty.openpty()
diff --git a/tools/patman/tools.py b/tools/patman/tools.py
index bf099798e6..1df8f2ecd2 100644
--- a/tools/patman/tools.py
+++ b/tools/patman/tools.py
@@ -167,9 +167,9 @@ def PathHasFile(fname):
return True
return False
-def Run(name, *args):
+def Run(name, *args, **kwargs):
try:
- return command.Run(name, *args, cwd=outdir, capture=True)
+ return command.Run(name, *args, cwd=outdir, capture=True, **kwargs)
except:
if not PathHasFile(name):
msg = "Plesae install tool '%s'" % name