3

The following shell script works but removes colored formatting generated by rspec:

#!/bin/bash
OUTPUT=`rspec`
echo "$OUTPUT"

How to preserve the colors?

1
  • 1
    What is much more likely is rspec is simply not doing color formatting when not outputting directly to terminal. You need to find an option like --color=always to force color. The shell isn't stripping the color sequences - it doesn't even know how to do so. Why are you trying to save colored output in a variable anyways? Just output it directly.
    – jw013
    Commented Oct 31, 2012 at 14:03

1 Answer 1

5

It's common for programs with colorized output to disable it if they're not being run directly in a TTY, since you might be piping the output to a log file or to another process that expects plain text. Typically the programs offer a switch to manually force colors enabled, and rspec has one (--color), but for some reason it ignores it if you're not running in a TTY, which is really unusual behavior.

I think your only options are to edit rspec to take out that check (see def color in rspec-core-2.11.1/lib/rspec/core/configuration.rb), or run it within a program that will trick it into thinking it has a TTY, like expect

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .