# HG changeset patch # User paulo@twcdns.fastsearch.net # Date 1269676588 25200 # Node ID df03fa355b60ab3a64f28df546edccfbcdccf408 first working version diff -r 000000000000 -r df03fa355b60 rcg.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rcg.py Sat Mar 27 00:56:28 2010 -0700 @@ -0,0 +1,55 @@ +#!/usr/bin/env python + +import sys +import re +import getopt + +#x = "\x1B[1;31;49m" + x +#x = START + c["white"][0] + ";" + c["blue"][1] + END + x + CLEAR + +START = "\x1B[" +BOLD = "1;" +END = "m" +CLEAR = START + "0" + END + +c = { + # color : (fg, bg) + "black" : ("30", "40"), + "red" : ("31", "41"), + "green" : ("32", "42"), + "brown" : ("33", "43"), + "blue" : ("34", "44"), + "magenta" : ("35", "45"), + "cyan" : ("36", "46"), + "white" : ("37", "47"), + "default" : ("39", "49"), +} + +bold = False +fg = None +bg = None + +(optvals, args) = getopt.getopt(sys.argv[1:], "f:b:B") + +for (opt, val) in optvals: + if opt == '-B': + bold = True + elif opt == '-f': + fg = val + elif opt == '-b': + bg = val + +if len(args) > 0: + for line in sys.stdin: + repl = START + if bold: + repl += BOLD + if fg is not None: + repl += c[fg][0] + if bg is not None: + repl += ';' + c[bg][1] + repl += END + r'\1' + CLEAR + x = re.sub(r'(' + args[0] + r')', repl, line) + + sys.stdout.write(x) + sys.stdout.flush()