Added textual status output to git-cl-status

Example of output:

$ git cl status
Branches associated with reviews:
  git-cl-status : None
         master : None
          owner : https://codereview.chromium.org/983843003 (closed)
     testfilter : None

Current branch: no issue assigned.

R=vadimsh@chromium.org
BUG=362198

Review URL: https://codereview.chromium.org/1172223002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@295596 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/git_cl.py b/git_cl.py
index 5ff11fc..b6810e8 100755
--- a/git_cl.py
+++ b/git_cl.py
@@ -1457,18 +1457,17 @@
     'error': Fore.WHITE,
   }.get(status, Fore.WHITE)
 
-def fetch_cl_status(b, auth_config=None):
-  """Fetches information for an issue and returns (branch, issue, color)."""
-  c = Changelist(branchref=b, auth_config=auth_config)
-  i = c.GetIssueURL()
-  status = c.GetStatus()
-  color = color_for_status(status)
+def fetch_cl_status(branch, auth_config=None):
+  """Fetches information for an issue and returns (branch, issue, status)."""
+  cl = Changelist(branchref=branch, auth_config=auth_config)
+  url = cl.GetIssueURL()
+  status = cl.GetStatus()
 
-  if i and (not status or status == 'error'):
+  if url and (not status or status == 'error'):
     # The issue probably doesn't exist anymore.
-    i += ' (broken)'
+    url += ' (broken)'
 
-  return (b, i, color)
+  return (branch, url, status)
 
 def get_cl_statuses(
     branches, fine_grained, max_processes=None, auth_config=None):
@@ -1501,9 +1500,9 @@
   else:
     # Do not use GetApprovingReviewers(), since it requires an HTTP request.
     for b in branches:
-      c = Changelist(branchref=b, auth_config=auth_config)
-      url = c.GetIssueURL()
-      yield (b, url, Fore.BLUE if url else Fore.WHITE)
+      cl = Changelist(branchref=b, auth_config=auth_config)
+      url = cl.GetIssueURL()
+      yield (b, url, 'waiting' if url else 'error')
 
 def CMDstatus(parser, args):
   """Show status of changelists.
@@ -1570,15 +1569,18 @@
   alignment = max(5, max(len(ShortBranchName(b)) for b in branches))
   for branch in sorted(branches):
     while branch not in branch_statuses:
-      b, i, color = output.next()
-      branch_statuses[b] = (i, color)
-    issue, color = branch_statuses.pop(branch)
+      b, i, status = output.next()
+      branch_statuses[b] = (i, status)
+    issue_url, status = branch_statuses.pop(branch)
+    color = color_for_status(status)
     reset = Fore.RESET
     if not sys.stdout.isatty():
       color = ''
       reset = ''
-    print '  %*s : %s%s%s' % (
-          alignment, ShortBranchName(branch), color, issue, reset)
+    status_str = '(%s)' % status if status else ''
+    print '  %*s : %s%s %s%s' % (
+          alignment, ShortBranchName(branch), color, issue_url, status_str,
+          reset)
 
   cl = Changelist(auth_config=auth_config)
   print