Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to see color Ant output in MSYS/Git Bash?

Tags:

git-bash

ant

msys

I'd like to use AnsiColorLogger to get color ouput from Ant. I'm using Git Bash on Windows.

I tried:

$ ant -logger org.apache.tools.ant.listener.AnsiColorLogger

but my output looks like:

Buildfile: c:\foo\build.xml
←[2;36m    [junit] Testsuite: org.foo.BarTest←[m
←[2;36m    [junit] Tests run: 1, Failures: 1, Errors: 0, Time elapsed: 0.188 sec←[m
←[2;36m    [junit] ←[m
←[2;36m    [junit] Testcase: testInherits took 0.175 sec←[m
←[2;36m    [junit]      FAILED←[m
←[2;36m    [junit] subdir not child←[m
←[2;36m    [junit] junit.framework.AssertionFailedError: subdir not child←[m
←[2;36m    [junit]      at org.foo.BarTest.testInherits(BarTest.java:61)←[m
←[2;36m    [junit] ←[m
←[2;31m    [junit] Test org.foo.BarTest FAILED←[m

I know ANSI colors work, at least partially, in Git Bash because commands like ls -ACF --color=auto produce nicely colored output.

What's the trick for Ant?

like image 778
jwfearn Avatar asked Nov 14 '11 22:11

jwfearn


2 Answers

After much Googling and experimentation, I combined several variations into a solution that works well for the particular combination of Git Bash, Ant and Windows.

Relaunch Git Bash after adding the following lines to your .bashrc file:

alias ant='cant'
function cant {
  "ant" -logger org.apache.tools.ant.listener.AnsiColorLogger "$@" \
      2>&1 | perl -pe 's/(?<=\e\[)2;//g'
}

Git Bash Noob Tip: .bashrc file, if it exists, lives in your home directory. Here's how to create/edit it:

$ cd
$ notepad .bashrc &
like image 67
jwfearn Avatar answered Nov 16 '22 16:11

jwfearn


it's probably even easier to just set the environment variable ANT_ARGS. e.g. just put this in your .bashrc:

export ANT_ARGS='-logger org.apache.tools.ant.listener.AnsiColorLogger'
like image 44
cavbertel Avatar answered Nov 16 '22 14:11

cavbertel