Add colors to git cl comments.
Helps scanning faster. colorma is already slightly used by gclient but wasn't
by git-cl yet.
Update a unit test to be stricter, it was caught in the cross fire as colorma
hooks sys.stdout and stderr.
R=iannucci@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/15025003
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@198689 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/git_cl.py b/git_cl.py
index a93a04b..b34edcf 100755
--- a/git_cl.py
+++ b/git_cl.py
@@ -24,6 +24,7 @@
pass
+from third_party import colorama
from third_party import upload
import breakpad # pylint: disable=W0611
import fix_encoding
@@ -41,6 +42,8 @@
GIT_INSTRUCTIONS_URL = 'http://code.google.com/p/chromium/wiki/UsingNewGit'
CHANGE_ID = 'Change-Id:'
+# Shortcut since it quickly becomes redundant.
+Fore = colorama.Fore
# Initialized in main()
settings = None
@@ -1101,7 +1104,17 @@
if cl.GetIssue():
data = cl.RpcServer().get_issue_properties(cl.GetIssue(), True)
for message in sorted(data['messages'], key=lambda x: x['date']):
- print '\n%s %s' % (message['date'].split('.', 1)[0], message['sender'])
+ if message['disapproval']:
+ color = Fore.RED
+ elif message['approval']:
+ color = Fore.GREEN
+ elif message['sender'] == data['owner_email']:
+ color = Fore.MAGENTA
+ else:
+ color = Fore.BLUE
+ print '\n%s%s %s%s' % (
+ color, message['date'].split('.', 1)[0], message['sender'],
+ Fore.RESET)
if message['text'].strip():
print '\n'.join(' ' + l for l in message['text'].splitlines())
return 0
@@ -1994,6 +2007,7 @@
'\nYour python version %s is unsupported, please upgrade.\n' %
sys.version.split(' ', 1)[0])
return 2
+
# Reload settings.
global settings
settings = Settings()
@@ -2040,5 +2054,8 @@
if __name__ == '__main__':
+ # These affect sys.stdout so do it outside of main() to simplify mocks in
+ # unit testing.
fix_encoding.fix_encoding()
+ colorama.init()
sys.exit(main(sys.argv[1:]))