run_git: add option to return raw output stream
Currently, clients which want the raw output from a Git command must sneakily extract the raw 'fd' from the utf8-encoding wrapper returned by run_git(). This is ugly and fragile. Instead, provide a formal mechanism for requesting raw output. Signed-off-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>
This commit is contained in:
parent
bb9bad89d1
commit
66afd72d6d
5
git.py
5
git.py
@ -41,7 +41,7 @@ class EncodeWrapper:
|
|||||||
return s.decode(self.encoding, errors = self.errors)
|
return s.decode(self.encoding, errors = self.errors)
|
||||||
|
|
||||||
|
|
||||||
def run_git(repo_path, params, stdin = None, silent_stderr = False):
|
def run_git(repo_path, params, stdin = None, silent_stderr = False, raw = False):
|
||||||
"""Invokes git with the given parameters.
|
"""Invokes git with the given parameters.
|
||||||
|
|
||||||
This function invokes git with the given parameters, and returns a
|
This function invokes git with the given parameters, and returns a
|
||||||
@ -63,6 +63,9 @@ def run_git(repo_path, params, stdin = None, silent_stderr = False):
|
|||||||
p.stdin.write(stdin)
|
p.stdin.write(stdin)
|
||||||
p.stdin.close()
|
p.stdin.close()
|
||||||
|
|
||||||
|
if raw:
|
||||||
|
return p.stdout
|
||||||
|
|
||||||
# We need to wrap stdout if we want to decode it as utf8, subprocess
|
# We need to wrap stdout if we want to decode it as utf8, subprocess
|
||||||
# doesn't support us telling it the encoding.
|
# doesn't support us telling it the encoding.
|
||||||
if sys.version_info.major == 3:
|
if sys.version_info.major == 3:
|
||||||
|
Loading…
Reference in New Issue
Block a user