You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.1 KiB
49 lines
1.1 KiB
#!/bin/sh |
|
## |
|
## lesspipe -- input filter for less(1) |
|
## To use: ``export LESSOPEN="|lesspipe %s"'' |
|
## |
|
|
|
file="$1" |
|
base="$file" |
|
filter="" |
|
while [ 1 ]; do |
|
ext=`expr "$base" : '.*\.\([^.]*\)$'` |
|
base=`expr "$base" : '\(.*\)\.[^.]*$'` |
|
case $ext in |
|
gz|z|Z ) |
|
filter="$filter | gzip -d -c" |
|
;; |
|
bz2 ) |
|
filter="$filter | bzip2 -d -c" |
|
;; |
|
[1-9n]|man ) |
|
case `uname -s` in |
|
FreeBSD) macro='mandoc' ;; # detects man(7) and mdoc(7) |
|
* ) macro='man' ;; # only man(7) |
|
esac |
|
filter="$filter | nroff -$macro" |
|
break |
|
;; |
|
tar ) |
|
filter="$filter | tar tvf -" |
|
break |
|
;; |
|
cpio ) |
|
filter="$filter | cpio -it" |
|
break |
|
;; |
|
rpm ) |
|
filter="$filter | @l_prefix@/bin/openpkg rpm -qpilv --scripts -- -" |
|
break |
|
;; |
|
* ) |
|
break |
|
;; |
|
esac |
|
done |
|
if [ ".$filter" != . ]; then |
|
echo "[LESS INPUT FILTER APPLIED: \"$filter\"]" |
|
fi |
|
eval "cat \"$file\" $filter" |
|
|
|
|