nicoulaj / rainbow

:rainbow: Colorize commands output or STDIN using patterns.
GNU General Public License v3.0
250 stars 35 forks source link
color python regex terminal

rainbow

.. image:: https://img.shields.io/github/tag/nicoulaj/rainbow.svg :target: https://pypi.org/project/rainbow :alt: last release

.. image:: https://pepy.tech/badge/rainbow :target: https://pypi.org/project/rainbow :alt: downloads

.. image:: https://img.shields.io/pypi/pyversions/rainbow.svg :target: https://pypi.org/project/rainbow :alt: python versions

.. image:: https://github.com/nicoulaj/rainbow/actions/workflows/tests.yml/badge.svg :target: https://github.com/nicoulaj/rainbow/actions :alt: continuous integration

.. image:: https://api.codeclimate.com/v1/badges/724f29330eb898c7516b/test_coverage :target: https://codeclimate.com/github/nicoulaj/rainbow/test_coverage :alt: test Coverage

.. image:: https://badges.gitter.im/nicoulaj/rainbow.svg :target: https://gitter.im/nicoulaj/rainbow :alt: gitter chat


Easily colorize commands output using patterns. ::

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

Examples

Using the command line

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

-  You can also pipe commands output into rainbow:
   ::

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

Using configs

Rainbow can load configuration for each command from files, which is the most convenient way to use it. When running rainbow mycommand, rainbow will automatically look for a config named mycommand.cfg in ~/.config/rainbow, ~/.rainbow, /etc/rainbow, or builtin configs:

The syntax for writing configs is straightforward, see the builtin configs <https://github.com/nicoulaj/rainbow/blob/master/rainbow/config/builtin> for examples. See also the commands support table <https://github.com/nicoulaj/rainbow/blob/master/CONTRIBUTING.md>.

Installation

Using packages


============================================  ============================================
 System                                        Installation instructions
============================================  ============================================
 Debian / RPM based                            `rainbow repository <https://software.opensuse.org/download.html?project=home%3Anicoulaj%3Arainbow&package=rainbow>`_ (`sources here <https://build.opensuse.org/package/show/home:nicoulaj:rainbow/rainbow>`_)
 Arch Linux                                    `AUR/rainbow <https://aur.archlinux.org/packages/rainbow>`_ / `AUR/rainbow-git <https://aur.archlinux.org/packages/rainbow-git>`_
 pip                                           `PyPI: rainbow <https://pypi.org/project/rainbow>`_
============================================  ============================================

Building from sources

You can build from sources this way:

::

git clone git://github.com/nicoulaj/rainbow.git
cd rainbow
python setup.py build install --user

Contributing

Contributions are welcome, please see CONTRIBUTING <https://github.com/nicoulaj/rainbow/blob/master/CONTRIBUTING.md>_.

License

This project is a fork of Linibou's colorex <http://bitbucket.org/linibou/colorex>. It is is released under the terms of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>. See COPYING for details.