#!/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"

