bash-it/plugins/available/less-pretty-cat.plugin.bash

31 lines
963 B
Bash

# shellcheck shell=bash
cite about-plugin
about-plugin 'pygmentize instead of cat to terminal if possible'
_command_exists pygmentize || return
# pigmentize cat and less outputs - call them ccat and cless to avoid that
# especially cat'ed output in scripts gets mangled with pygemtized meta characters
function ccat() {
about 'runs either pygmentize or cat on each file passed in'
param '*: files to concatenate (as normally passed to cat)'
example 'ccat mysite/manage.py dir/text-file.txt'
local file
: "${BASH_IT_CCAT_STYLE:=default}"
for file in "$@"; do
pygmentize -f 256 -O style="$BASH_IT_CCAT_STYLE" -g "$file" 2> /dev/null || command cat "$file"
done
}
function cless() {
about 'pigments the file passed in and passes it to less for pagination'
param '1: the file to paginate with less'
example 'cless mysite/manage.py'
: "${BASH_IT_CLESS_STYLE:=default}"
pygmentize -f 256 -O style="$BASH_IT_CLESS_STYLE" -g "$@" | command less -R
}