I post some shell scripts here to output
svn status
command output colorized.
Bash Script
#!/bin/bash -
set -o nounset # Treat unset variables as an error
txtblk='\e[0;30m' # Black - Regular
txtred='\e[0;31m' # Red
txtgrn='\e[0;32m' # Green
txtylw='\e[0;33m' # Yellow
txtblu='\e[0;34m' # Blue
txtpur='\e[0;35m' # Purple
txtcyn='\e[0;36m' # Cyan
txtwht='\e[0;37m' # White
bldblk='\e[1;30m' # Black - Bold
bldred='\e[1;31m' # Red
bldgrn='\e[1;32m' # Green
bldylw='\e[1;33m' # Yellow
bldblu='\e[1;34m' # Blue
bldpur='\e[1;35m' # Purple
bldcyn='\e[1;36m' # Cyan
bldwht='\e[1;37m' # White
unkblk='\e[4;30m' # Black - Underline
undred='\e[4;31m' # Red
undgrn='\e[4;32m' # Green
undylw='\e[4;33m' # Yellow
undblu='\e[4;34m' # Blue
undpur='\e[4;35m' # Purple
undcyn='\e[4;36m' # Cyan
undwht='\e[4;37m' # White
bakblk='\e[40m' # Black - Background
bakred='\e[41m' # Red
badgrn='\e[42m' # Green
bakylw='\e[43m' # Yellow
bakblu='\e[44m' # Blue
bakpur='\e[45m' # Purple
bakcyn='\e[46m' # Cyan
bakwht='\e[47m' # White
txtrst='\e[0m' # Text Reset
RESULT="`svn st`"
echo "$RESULT" | while read LINE
do
case "${LINE:0:1}" in
'M')
echo -e "$txtylw$LINE$txtrst"
;;
'X')
echo -e "$bakpur$LINE$txtrst"
;;
'?')
echo -e "$txtgrn$LINE$txtrst"
;;
'D')
echo -e "$bakylw$LINE$txtrst"
;;
'I')
echo -e "$txtblu$LINE$txtrst"
;;
*)
echo -e "$LINE";
;;
esac
done
AWK Script
#!/usr/bin/awk -f
BEGIN {
cmd = "svn st";
while (cmd | getline) {
char = substr($1, 0, 1);
if (char == "M") {
print "\033[36m(", $1, ") ", $2, $3, "\033[0m";
} else if (char == "X") {
print "\033[35m(", $1, ") ", $2, "\033[0m";
} else if (char == "A") {
print "\033[32m(", $1, ") ", $2, $3, "\033[0m";
} else if (char == "?") {
print "\033[1;31m(", $1, ") ", $2, $3, "\033[0m";
} else if (length($1) == 1 ) {
print $1," " $2;
} else if ($1 == "---") { # changelists etc.
print "\033[0;40m", $1, $2, $3, $4, "\033[0m";
} else {
print $0;
}
}
}