/rainbow

Colorize commands output or STDIN using patterns.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

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.