Skip to main content

CLI colorizer

Project description

CLI colorizer

This project is to colorize output of command line interface for devices where CLI is not colored by default. Goal is to ease troubleshooting and make output more pretty.

License Cisco Devnet Published

image

INSTALL

  • You will need python 2.6+ and pexpect

  • telnet and/or ssh should be installed

  • I recommend installing virtualenv and install clicol into that virtual environment:

    • pip install virtualenv
    • virtualenv \~/mypython
    • source \~/mypython/bin/activate
    • pip install clicol
    • OR (after pulling git source)
      • pip install clicol-xxxx.zip
  • To get clicol source:

    • git clone https://github.com/realvitya/clicol \~/clicol
    • cd \~/clicol
  • Copy clicol.cfg to your $HOME directory and modify to your needs

USAGE

Run the script clicol-telnet or clicol-ssh and specify arguments as for the telnet/ssh.

clicol can be run on Windows in cygwin. If you want to use SecureCRT, you must enable sshd in cygwin and connect to localhost. It is not necessary to be administrator on the desktop for this to work. You must bind to localhost and use port number >1024.

By default clicol will colorize with all colorsets and this behaviour can be tuned in config file. The config file can be saved in user directory and it will take preference over defaults.

Default break key is CTRL-\

After hitting the break key you have some options:

p - pausing coloring

q - quit from session

h - print help

T - highlight regex (set regex in runtime to highligh something important)

F1-F12 keys are shortcuts for various commands. Examples are in example config file or try help 'h' key. Shortcuts for SHIFT+F1-F8 are only working if your terminal supports this. For SecureCRT you may setup mapped keys for these to work. (for Putty I don't know yet how to implement this)

Note: If you installed into virtualenv then you must first activate it:

source ~/mypython/bin/activate

Consider using aliases. A basic template can be found in doc folder.

Your terminal software should support ANSI colors. Putty/SecureCRT are tested. I am developing with default colorsets. If you are using other software, colors can differ somewhat.

TESTING

You can list all supported matchers and see them in action. This is good to create a list of matcher and filter on those only. This way one can select the preferred matchers if finds all of them disturbing. Run the script clicol-test {regex}

Use case examples:

List all matcher:

clicol-test ".*"

List only BGP matchers:

clicol-test ".*bgp.*"

List only certain matchers:

clicol-test ".*ipv4|cisco_if_stats|juniper_if"

Then the desired regex can be specified in the clicol.cfg in your $HOME and only these matchers will be used.

Output can be tested by running clicol-file {filename} script. This will colorize the textfile and dump it. Good for testing.

CUSTOMIZING

You can override or extend the colors and regexes so you can modify default behaviour and view. This can be done by creating the customized files in the format below. You may find examples in default ini files here

ls -l $VIRTUAL_ENV/lib/python2*/site-packages/clicol/ini

Custom colors

$HOME/clicol_customcolors.ini

This file is for overriding extending current colorset. Example:

[colors]
c_blue     :\033[94m

Custom colortable

$HOME/clicol_customct.ini

This file is for overriding or extending keywords for colors. Example:

[colortable]
#add blinking to high alert color:
highalert              = %(c_blink)s%(c_u_lred)s

Custom colormap

$HOME/clicol_customcmap.ini

This file is for overriding or extending rules for recoloring/matching. Example:

#disable ipv6 coloring
[common_ipv6]
disabled=1

#alter coloring for 'shutdown'
[common_shut]
#replacement=%(alert)s\1%(default)s
replacement=%(lowalert)s\1%(default)s

You can test your changes: clicol-test common_shut

License and Copyright

clicol is licensed GPLv3 Copyright Viktor Kertesz, 2017-2019

Author

clicol was written by Viktor Kertesz (vkertesz2 [~at~] gmail [/dot] com).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
clicol-1.1.0.post3.tar.gz (34.2 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page