代码之家  ›  专栏  ›  技术社区  ›  Nate

雪豹中蚂蚁AnsiColorLogger的问题

  •  4
  • Nate  · 技术社区  · 16 年前

    我已将Ant配置为使用AnsiColorLogger。在MacOS10.5中,一切都很好。自从升级到雪豹后,AnsiColorLoggger不再工作。我看到蚂蚁输出(未着色)一秒钟,然后它就消失了。还有人在《雪豹》里用过这个吗?其他ANSI颜色在Terminal.app中工作正常(彩色ls输出,我的提示符中的颜色)。

    另外,这是一个关于超级用户的更好的问题吗?

    2 回复  |  直到 16 年前
        1
  •  6
  •   Dave Dopson    15 年前

    更新: 我已经解决了这个问题。这与ANT给出的转义序列有关,这些转义序列虽然适用于linux xterm,但Mac OS X无法正确解释。可以过滤ANT输出以转换这些序列并恢复彩色输出。

    这个故事的寓意是,这个包装器脚本将实现彩色输出:

    # cat /workspace/SDK/bin/ant-wrapper.sh
    /usr/bin/ant -logger org.apache.tools.ant.listener.AnsiColorLogger "$@" | perl -pe 's/(?&lt=\e\[)2;//g'
    
    # alias ant='/workspace/SDK/bin/ant-wrapper.sh' 
    
    # ant publish 
    (output has lots of pretty colors;  well, maybe not so pretty, more like an easter egg)
    

    原始Post(和调试步骤):

    对于AnsiColorLogger根本不显示颜色,我也有类似的问题。我不确定作者所说的“[输出出现]一秒钟,然后它就消失了”是什么意思。这似乎是一个奇怪的问题发生在终端上。

    我的盒子:

    # uname -a
    Darwin Dave-Dopsons-MacBook-Pro.local 10.7.0 Darwin Kernel Version 10.7.0: Sat Jan 29 15:17:16 PST 2011; root:xnu-1504.9.37~1/RELEASE_I386 i386
    

    http://ant.apache.org/manual/listeners.html#AnsiColorLogger

    这里有一个相关的论坛帖子(尝试了给出的建议,但没有结果): http://ant.1045680.n5.nabble.com/Macosx-and-AnsiColorLogger-td1355310.html

    我做了“ant | less”,我确实看到了转义序列,但仍然没有颜色:

    Buildfile: /workspace/Words/words_blackberry/build.xml
    ESC[2;32m
    publish:ESC[m
    

    仍然被封锁在这个问题上,如果有人能在OSX上使用它,我希望得到建议

    下面是彩色ls的输出:

    # CLICOLOR_FORCE=exfxcxdxbxegedabagacad ls -lGF | less
    total 112
    -rw-r--r--  1 ddopson  admin  6511 May 29 12:41 build.xml
    drwxr-xr-x  6 ddopson  admin   204 May 28 23:59 ESC[34meclipse-binESC[mESC[m/
    lrwxr-xr-x  1 ddopson  admin    35 May 23 21:24 ESC[35mfilesESC[mESC[m@ -> ../artwork/output/blackberry/files/
    lrwxr-xr-x  1 ddopson  admin    36 May 23 21:20 ESC[35mimagesESC[mESC[m@ -> ../artwork/output/blackberry/images/
    

    注意转义序列的细微差别;他们没有'2;'就像蚂蚁一样。。。

    为了验证这个理论:

    ... 输出是彩色的!胜利!

        2
  •  3
  •   Stu Thompson Helter Scelter    14 年前

    我把ddopson的知识塞进一行:

    ant () { command ant  -logger org.apache.tools.ant.listener.AnsiColorLogger "$@" | sed 's/2;//g' ; }
    

    这通过使用 Bash Function ~/.profile 文件,它将执行与ddopson相同的操作 ant-wrapper.sh