Colorize commands output or STDIN using patterns.
JavaScript Shell Python
Pull request Compare This branch is 143 commits behind nicoulaj:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
completion
configs
.gitignore
COPYING
MANIFEST.in
README.rst
rainbow
setup.py

README.rst

Rainbow

Easily colorize logs or commands output using patterns.

rainbow [ --COLOR=PATTERN ... | --conf CONF ] COMMAND

Examples

Using patterns

Just prepend rainbow with COLOR=PATTERN associations to your command, for example:

  • Tail some log file with lines containing ERROR in red:

    rainbow --red='.*ERROR.*' -- tail -f /var/log/my.log
    
  • Ping Google with IP addresses colorized in yellow:

    rainbow --yellow='\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}' -- ping www.google.com
    
  • Rainbow can also read from STDIN instead of providing a command:

    tail -f /var/log/my.log | rainbow --red='.*ERROR.*'
    

Using confs

Rainbow can read COLOR=PATTERN associations from config files, which is the most common way to use it. It automatically uses the config file if there is one named after the command name in ~/.rainbow, or a builtin one:

  • Colorize the diff command output using the builtin config:

    rainbow diff file1 file2
    
  • Start JBoss application server with colorized logs:

    rainbow --config=jboss -- jboss/bin/run.sh run
    

The syntax for writing configs is very simple. See the builtin configs for examples.

Installation

Using packages

Building from sources

You can build from sources this way:

git clone git://github.com/nicoulaj/rainbow.git
cd rainbow
sudo python setup.py install

License

This project is a fork of Linibou's colorex. It is is released under the terms of the GNU General Public License. See COPYING for details.