git-p4: add raw option to read_pipelines
Previously the read_lines function always decoded the result lines. In order to improve support for non-decoded binary processing of data in git-p4.py, this patch adds a raw option to the function that allows decoding to be disabled. Signed-off-by: Joel Holdsworth <jholdsworth@nvidia.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
e665e98ec1
commit
9732e2229c
|
@ -340,17 +340,19 @@ def p4_read_pipe(c, ignore_error=False, raw=False):
|
||||||
real_cmd = p4_build_cmd(c)
|
real_cmd = p4_build_cmd(c)
|
||||||
return read_pipe(real_cmd, ignore_error, raw=raw)
|
return read_pipe(real_cmd, ignore_error, raw=raw)
|
||||||
|
|
||||||
def read_pipe_lines(c):
|
def read_pipe_lines(c, raw=False):
|
||||||
if verbose:
|
if verbose:
|
||||||
sys.stderr.write('Reading pipe: %s\n' % str(c))
|
sys.stderr.write('Reading pipe: %s\n' % str(c))
|
||||||
|
|
||||||
expand = not isinstance(c, list)
|
expand = not isinstance(c, list)
|
||||||
p = subprocess.Popen(c, stdout=subprocess.PIPE, shell=expand)
|
p = subprocess.Popen(c, stdout=subprocess.PIPE, shell=expand)
|
||||||
pipe = p.stdout
|
pipe = p.stdout
|
||||||
val = [decode_text_stream(line) for line in pipe.readlines()]
|
lines = pipe.readlines()
|
||||||
|
if not raw:
|
||||||
|
lines = [decode_text_stream(line) for line in lines]
|
||||||
if pipe.close() or p.wait():
|
if pipe.close() or p.wait():
|
||||||
die('Command failed: %s' % str(c))
|
die('Command failed: %s' % str(c))
|
||||||
return val
|
return lines
|
||||||
|
|
||||||
def p4_read_pipe_lines(c):
|
def p4_read_pipe_lines(c):
|
||||||
"""Specifically invoke p4 on the command supplied. """
|
"""Specifically invoke p4 on the command supplied. """
|
||||||
|
|
Loading…
Reference in New Issue