我有一个Ruby脚本(Guardfile),它执行一个rake命令。
当我在命令行上运行 'rake spec' 时,输出会带有颜色。如何让 Ruby 脚本的输出也带有颜色呢?
从命令行开始:
guard :shell do
watch(%r{^manifests\/.+\.pp$}) do |m|
spec = `rake spec`
retval = $?.to_i
case retval
when 0
if spec.length > 0 then
puts spec
n "#{m[0]} Tests Failed!", 'Rake Spec', :pending
else
puts spec
n "#{m[0]} Tests Passed!", 'Rake Spec', :pending
end
end
end
当我在命令行上运行 'rake spec' 时,输出会带有颜色。如何让 Ruby 脚本的输出也带有颜色呢?
从命令行开始:
来自 Ruby 脚本:
更新
我能够通过使用 script
来部分解决这个问题。
spec = `script -q /dev/null rake spec`
这种方法仍有不足之处,无法实时滚动文本。虽然它保留了颜色,但直到最后才输出任何内容。
是否有更原生的方法可以实现滚动?
spec = \
rake spec --color``。 - Undo无效选项:--color
。 - spuder