diff --git a/plugins/available/less-pretty-cat.plugin.bash b/plugins/available/less-pretty-cat.plugin.bash index b6b9d1f0..bfe0fe09 100644 --- a/plugins/available/less-pretty-cat.plugin.bash +++ b/plugins/available/less-pretty-cat.plugin.bash @@ -1,13 +1,9 @@ +# shellcheck shell=bash cite about-plugin about-plugin 'pygmentize instead of cat to terminal if possible' -if $(command -v pygmentize &> /dev/null) ; then - # get the full paths to binaries - CAT_BIN=$(which cat) - LESS_BIN=$(which less) - BASH_IT_CCAT_STYLE="${BASH_IT_CCAT_STYLE:=default}" - BASH_IT_CLESS_STYLE="${BASH_IT_CLESS_STYLE:=default}" - +if _command_exists pygmentize +then # 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() @@ -15,17 +11,21 @@ if $(command -v pygmentize &> /dev/null) ; then about 'runs either pygmentize or cat on each file passed in' param '*: files to concatenate (as normally passed to cat)' example 'cat mysite/manage.py dir/text-file.txt' - for var; + local file + : "${BASH_IT_CCAT_STYLE:=default}" + + for file in "$@" do - pygmentize -f 256 -O style="$BASH_IT_CCAT_STYLE" -g "$var" 2>/dev/null || "$CAT_BIN" "$var"; + pygmentize -f 256 -O style="$BASH_IT_CCAT_STYLE" -g "$file" 2>/dev/null || command cat "$file"; done } function cless() { - about 'it pigments the file passed in and passes it to less for pagination' + about 'pigments the file passed in and passes it to less for pagination' param '$1: the file to paginate with less' example 'less mysite/manage.py' - pygmentize -f 256 -O style="$BASH_IT_CLESS_STYLE" -g $* | "$LESS_BIN" -R + : "${BASH_IT_CLESS_STYLE:=default}" + pygmentize -f 256 -O style="$BASH_IT_CLESS_STYLE" -g "$@" | command less -R } fi