dotfiles/.lessfilter

37 lines
1.0 KiB
Plaintext
Raw Normal View History

2022-03-22 23:36:12 +01:00
#!/bin/zsh
# Try to use highlight. If that fails or the output looks suspicious, use
# lesspipe normally.
2022-04-14 23:37:56 +02:00
setopt LOCAL_OPTIONS ERR_RETURN NO_UNSET PIPE_FAIL
local file="${1}"
local ret
local output
2022-03-22 23:36:12 +01:00
if type highlight >& -; then
output="$(highlight --force \
--out-format=truecolor \
--style=base16/unikitty-reversible \
--stdout "${file}")"
ret=${?}
elif type pygmentize >& -; then
output="$(pygmentize -f terminal16m -g -O style=paraiso-dark ${file})"
ret=${?}
elif type source-highlight >& -; then
output="$(source-highlight --failsafe \
--infer-lang \
--out-format=esc \
--style-file=esc.style \
--input=${file})"
ret=${?}
fi
2022-04-14 23:37:56 +02:00
[[ ${ret} -eq 0 ]] || return ${ret}
2022-03-22 23:36:12 +01:00
# Try to catch when the output is just the magic string
2022-04-14 23:37:56 +02:00
zmodload zsh/stat
if [[ ${#output} -lt 256 && $(zstat +size "${file}") -gt 256 ]]; then
2022-03-22 23:36:12 +01:00
return 1
fi
print -r ${output}