Merge "Fix output printing with python3"
This commit is contained in:
@@ -68,13 +68,6 @@ _rewrites = None
|
|||||||
_rewrites_push = None
|
_rewrites_push = None
|
||||||
|
|
||||||
|
|
||||||
def print_safe_encoding(str):
|
|
||||||
if sys.stdout.encoding is None:
|
|
||||||
print(str)
|
|
||||||
else:
|
|
||||||
print(str.encode(sys.stdout.encoding, 'replace'))
|
|
||||||
|
|
||||||
|
|
||||||
class colors(object):
|
class colors(object):
|
||||||
yellow = '\033[33m'
|
yellow = '\033[33m'
|
||||||
green = '\033[92m'
|
green = '\033[92m'
|
||||||
@@ -154,9 +147,8 @@ def run_command_status(*argv, **kwargs):
|
|||||||
stdin=subprocess.PIPE if stdin else None,
|
stdin=subprocess.PIPE if stdin else None,
|
||||||
stdout=subprocess.PIPE,
|
stdout=subprocess.PIPE,
|
||||||
stderr=subprocess.STDOUT,
|
stderr=subprocess.STDOUT,
|
||||||
env=newenv)
|
env=newenv, universal_newlines=True)
|
||||||
(out, nothing) = p.communicate(stdin)
|
(out, nothing) = p.communicate(stdin)
|
||||||
out = out.decode('utf-8', 'replace')
|
|
||||||
return (p.returncode, out.strip())
|
return (p.returncode, out.strip())
|
||||||
|
|
||||||
|
|
||||||
@@ -266,7 +258,7 @@ def run_custom_script(action):
|
|||||||
raise CustomScriptException(status, output, [path], {})
|
raise CustomScriptException(status, output, [path], {})
|
||||||
elif output and VERBOSE:
|
elif output and VERBOSE:
|
||||||
print("script %s output is:" % (path))
|
print("script %s output is:" % (path))
|
||||||
print_safe_encoding(output)
|
print(output)
|
||||||
|
|
||||||
|
|
||||||
def git_config_get_value(section, option, default=None, as_bool=False):
|
def git_config_get_value(section, option, default=None, as_bool=False):
|
||||||
@@ -659,7 +651,7 @@ def query_reviews_over_ssh(remote_url, project=None, change=None,
|
|||||||
"gerrit", "query",
|
"gerrit", "query",
|
||||||
"--format=JSON %s" % query)
|
"--format=JSON %s" % query)
|
||||||
if VERBOSE:
|
if VERBOSE:
|
||||||
print_safe_encoding(output)
|
print(output)
|
||||||
|
|
||||||
changes = []
|
changes = []
|
||||||
try:
|
try:
|
||||||
@@ -671,7 +663,7 @@ def query_reviews_over_ssh(remote_url, project=None, change=None,
|
|||||||
changes.append(data)
|
changes.append(data)
|
||||||
except Exception:
|
except Exception:
|
||||||
if VERBOSE:
|
if VERBOSE:
|
||||||
print_safe_encoding(output)
|
print(output)
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
raise parse_exc(err)
|
raise parse_exc(err)
|
||||||
return changes
|
return changes
|
||||||
@@ -738,11 +730,11 @@ def update_remote(remote):
|
|||||||
cmd = "git remote update %s" % remote
|
cmd = "git remote update %s" % remote
|
||||||
(status, output) = run_command_status(cmd)
|
(status, output) = run_command_status(cmd)
|
||||||
if VERBOSE:
|
if VERBOSE:
|
||||||
print_safe_encoding(output)
|
print(output)
|
||||||
if status != 0:
|
if status != 0:
|
||||||
print("Problem running '%s'" % cmd)
|
print("Problem running '%s'" % cmd)
|
||||||
if not VERBOSE:
|
if not VERBOSE:
|
||||||
print_safe_encoding(output)
|
print(output)
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@@ -850,7 +842,7 @@ def rebase_changes(branch, remote, interactive=True):
|
|||||||
if status != 0:
|
if status != 0:
|
||||||
print("Errors running %s" % cmd)
|
print("Errors running %s" % cmd)
|
||||||
if interactive:
|
if interactive:
|
||||||
print_safe_encoding(output)
|
print(output)
|
||||||
return False
|
return False
|
||||||
_orig_head = output
|
_orig_head = output
|
||||||
|
|
||||||
@@ -871,8 +863,8 @@ def rebase_changes(branch, remote, interactive=True):
|
|||||||
if status != 0:
|
if status != 0:
|
||||||
print("Errors running %s" % cmd)
|
print("Errors running %s" % cmd)
|
||||||
if interactive:
|
if interactive:
|
||||||
print_safe_encoding(output)
|
print(output)
|
||||||
print("It is likely that your change has a merge conflict. "
|
printwrap("It is likely that your change has a merge conflict. "
|
||||||
"You may resolve it in the working tree now as "
|
"You may resolve it in the working tree now as "
|
||||||
"described above and then run 'git review' again, or "
|
"described above and then run 'git review' again, or "
|
||||||
"if you do not want to resolve it yet (note that the "
|
"if you do not want to resolve it yet (note that the "
|
||||||
@@ -892,7 +884,7 @@ def undo_rebase():
|
|||||||
(status, output) = run_command_status(cmd)
|
(status, output) = run_command_status(cmd)
|
||||||
if status != 0:
|
if status != 0:
|
||||||
print("Errors running %s" % cmd)
|
print("Errors running %s" % cmd)
|
||||||
print_safe_encoding(output)
|
print(output)
|
||||||
return False
|
return False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@@ -919,7 +911,7 @@ def assert_one_change(remote, branch, yes, have_hook):
|
|||||||
(status, output) = run_command_status(cmd)
|
(status, output) = run_command_status(cmd)
|
||||||
if status != 0:
|
if status != 0:
|
||||||
print("Had trouble running %s" % cmd)
|
print("Had trouble running %s" % cmd)
|
||||||
print_safe_encoding(output)
|
print(output)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
filtered = filter(None, output.split("\n"))
|
filtered = filter(None, output.split("\n"))
|
||||||
output_lines = sum(1 for s in filtered)
|
output_lines = sum(1 for s in filtered)
|
||||||
@@ -1655,7 +1647,7 @@ def _main():
|
|||||||
print("\t%s\n" % cmd)
|
print("\t%s\n" % cmd)
|
||||||
else:
|
else:
|
||||||
(status, output) = run_command_status(cmd)
|
(status, output) = run_command_status(cmd)
|
||||||
print_safe_encoding(output)
|
print(output)
|
||||||
|
|
||||||
if options.finish and not options.dry and status == 0:
|
if options.finish and not options.dry and status == 0:
|
||||||
finish_branch(branch)
|
finish_branch(branch)
|
||||||
@@ -1670,16 +1662,7 @@ def main():
|
|||||||
try:
|
try:
|
||||||
_main()
|
_main()
|
||||||
except GitReviewException as e:
|
except GitReviewException as e:
|
||||||
# If one does unguarded print(e) here, in certain locales the implicit
|
|
||||||
# str(e) blows up with familiar "UnicodeEncodeError ... ordinal not in
|
|
||||||
# range(128)". See rhbz#1058167.
|
|
||||||
try:
|
|
||||||
u = unicode(e)
|
|
||||||
except NameError:
|
|
||||||
# Python 3, we're home free.
|
|
||||||
print(e)
|
print(e)
|
||||||
else:
|
|
||||||
print(u.encode('utf-8'))
|
|
||||||
sys.exit(getattr(e, 'EXIT_CODE', -1))
|
sys.exit(getattr(e, 'EXIT_CODE', -1))
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user