Mercurial > diff-colorize
diff diff-colorize.py @ 0:2df4ed64a388
Initial check-in of first working version.
author | Peter Hosey |
---|---|
date | Sun, 10 Aug 2008 22:57:59 -0700 |
parents | |
children | 44f86539d245 |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/diff-colorize.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python + +RESET_FORMAT = '\033[0m' +COLOR_FORMAT = '\033[38;5;%um' +BEGIN_REVERSE_FORMAT = '\033[7m' +END_REVERSE_FORMAT = '\033[27m' + +INDEX_COLOR = 32 +REMOVED_COLOR = 203 +ADDED_COLOR = 2 + +prefixes_to_invert = ['---', '+++', '-', '+'] + +import sys +import fileinput + +for line in fileinput.input(): + if line.startswith('Index: ') or line.startswith('diff --git '): + color = INDEX_COLOR + elif line.startswith('-'): + color = REMOVED_COLOR + elif line.startswith('+'): + color = ADDED_COLOR + else: + color = None + + if color is not None: + sys.stdout.write(COLOR_FORMAT % (color,)) + for prefix in prefixes_to_invert: + if line.startswith(prefix): + sys.stdout.write(BEGIN_REVERSE_FORMAT) + sys.stdout.write(prefix) + sys.stdout.write(END_REVERSE_FORMAT) + line = line[len(prefix):] + break + else: + sys.stdout.write(RESET_FORMAT) + + sys.stdout.write(line) + +print RESET_FORMAT