Mercurial > diff-colorize
comparison 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 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:2df4ed64a388 |
---|---|
1 #!/usr/bin/env python | |
2 | |
3 RESET_FORMAT = '\033[0m' | |
4 COLOR_FORMAT = '\033[38;5;%um' | |
5 BEGIN_REVERSE_FORMAT = '\033[7m' | |
6 END_REVERSE_FORMAT = '\033[27m' | |
7 | |
8 INDEX_COLOR = 32 | |
9 REMOVED_COLOR = 203 | |
10 ADDED_COLOR = 2 | |
11 | |
12 prefixes_to_invert = ['---', '+++', '-', '+'] | |
13 | |
14 import sys | |
15 import fileinput | |
16 | |
17 for line in fileinput.input(): | |
18 if line.startswith('Index: ') or line.startswith('diff --git '): | |
19 color = INDEX_COLOR | |
20 elif line.startswith('-'): | |
21 color = REMOVED_COLOR | |
22 elif line.startswith('+'): | |
23 color = ADDED_COLOR | |
24 else: | |
25 color = None | |
26 | |
27 if color is not None: | |
28 sys.stdout.write(COLOR_FORMAT % (color,)) | |
29 for prefix in prefixes_to_invert: | |
30 if line.startswith(prefix): | |
31 sys.stdout.write(BEGIN_REVERSE_FORMAT) | |
32 sys.stdout.write(prefix) | |
33 sys.stdout.write(END_REVERSE_FORMAT) | |
34 line = line[len(prefix):] | |
35 break | |
36 else: | |
37 sys.stdout.write(RESET_FORMAT) | |
38 | |
39 sys.stdout.write(line) | |
40 | |
41 print RESET_FORMAT |