【发布时间】:2017-02-15 10:27:32
【问题描述】:
支持控制台着色的应用程序通常的规则是在当前控制台是 TTY 时激活它。
这种方法在持续集成服务器(如 Jenkins、Travis 等)上会失效,因为它们没有为其伪控制台打开 TTY。
我想知道是否可以区分这两种情况:
-
mycommand在 Jenkins 下运行 - 我们要启用着色 -
mycommand >> output.log-- 我们不想在日志文件中出现 ANSI 转义。
我的旧 ANSI 检测代码:
import sys
import os
if (hasattr(sys.stderr, "isatty") and sys.stderr.isatty()) or \
('TERM' in os.environ.keys() and os.environ['TERM'] in ['linux']) or \
('PYCHARM_HOSTED' in os.environ.keys()):
coloring = True
我可以改进它以解决这个问题吗?
【问题讨论】:
标签: python jenkins travis-ci tty ansi-escape