#!/usr/local/bin/perl
# Display many filetypes, decompresses / decrypts as needed.
#            (c) Hans-Peter-Stoerr (www.stoerr.net) Jan 2004
#$Id: aless,v 1.2 2004/01/29 08:53:35 stoerr Exp $
# -*- perl -*-
$_=shift;
$filter="cat $_ |";
while(1) {
    /\.gz$/ && do {$filter.="zcat |"; $_=$`; next};
    /\.z$/ && do {$filter.="zcat |"; $_=$`; next};
    /\.Z$/ && do {$filter.="zcat |"; $_=$`; next};
    /\.bz2$/ && do {$filter.="bunzip2 |"; $_=$`; next};
    /\.bz$/ && do {$filter.="bunzip |"; $_=$`; next};
    /\.tar$/ && do {$filter.="tar tvf - |"; $_=$`; next};
    /\.taz$/ && do {$filter.="tar tvzf - |"; $_=$`; next};
    /\.tgz$/ && do {$filter.="tar tvzf - |"; $_=$`; next};
    /\.[0-9]$/ && do {$filter.="nroff -man |"; $_=$`; next};
    /\.pgp$/ && do {$filter.="pgp -f |"; $_=$`; next};
    /\.gpg$/ && do {$filter.="gpg --decrypt |"; $_=$`; next};
    /\.asc$/ && do {$filter.="pgp -f |"; $_=$`; next};
    last;
} continue { }
if(/\.(ps|PS)$/) {
    $filter.="ghless";
} elsif (/\.dvi$/) {
    $filter.="dviless";
} elsif (/\.(pdf|PDF)$/) {
    $filter.="pdfless";
} else {
    $filter.="less -M";
}
system $filter;

