Skip to contentSkip to conversation

Colored log on any ANSI capable terminal

PATCH New Pavel Roskin 1 participant 1 message Jun 15, 2016

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Colored log on any ANSI capable terminal

Hello!

setterm only works on Linux terminal. It should be safe to use raw ANSI sequences -they work on most terminals, including xterm. Nobody forces you to use the "-c" option to "git log" on those stone-age terminals that neither support nor ignore ANSI color codes.

I'm aware of $'...' but it may not work in bash 1.x.

gitlog.sh +5 -5
@@ -12,11 +12,11 @@
 
 if [ "$1" = "-c" ]; then
 	shift
-	colheader=$(setterm -foreground green)
-	colauthor=$(setterm -foreground cyan)
-	colcommitter=$(setterm -foreground magenta)
-	colsignoff=$(setterm -foreground yellow)
-	coldefault=$(setterm -foreground default)
+	colheader=$(echo -ne '\e[32m')
+	colauthor=$(echo -ne '\e[36m')
+	colcommitter=$(echo -ne '\e[35m')
+	colsignoff=$(echo -ne '\e[33m')
+	coldefault=$(echo -ne '\e[39m')
 else
 	colheader=
 	colauthor=
Signature · 2 lines
Regards,
Pavel Roskin