From 222840fb5fcba621789c68a537f360a6684868db Mon Sep 17 00:00:00 2001 From: anatoly techtonik Date: Sat, 15 Apr 2017 16:25:57 +0300 Subject: [PATCH] Show colored explanation in git map-branches -h Bug: Change-Id: Ie624d20ecff2afd274043620fbb2edcbcee857c6 Reviewed-on: https://chromium-review.googlesource.com/476670 Commit-Queue: anatoly techtonik Reviewed-by: Robbie Iannucci --- git_map_branches.py | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/git_map_branches.py b/git_map_branches.py index b889b454d..58bfb35f9 100755 --- a/git_map_branches.py +++ b/git_map_branches.py @@ -3,8 +3,7 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -"""Provides a short mapping of all the branches in your local repo, organized -by their upstream ('tracking branch') layout. +"""Print dependency tree of branches in local repo. Example: origin/master @@ -278,6 +277,19 @@ class BranchMapper(object): self.__append_branch(child, depth=depth + 1) +def print_desc(): + for line in __doc__.splitlines(): + starpos = line.find('* ') + if starpos == -1 or '-' not in line: + print(line) + else: + _, color, rest = line.split(None, 2) + outline = line[:starpos+1] + outline += getattr(Fore, color.upper()) + " " + color + " " + Fore.RESET + outline += rest + print(outline) + print('') + def main(argv): setup_color.init() if get_git_version() < MIN_UPSTREAM_TRACK_GIT_VERSION: @@ -287,8 +299,10 @@ def main(argv): '.'.join(str(x) for x in MIN_UPSTREAM_TRACK_GIT_VERSION) + '. Please consider upgrading.') - parser = argparse.ArgumentParser( - description='Print a a tree of all branches parented by their upstreams') + if '-h' in argv: + print_desc() + + parser = argparse.ArgumentParser() parser.add_argument('-v', action='count', help='Display branch hash and Rietveld URL') parser.add_argument('--no-color', action='store_true', dest='nocolor',