Репозитории ALT
Группа :: Работа с файлами
Пакет: less
Главная Изменения Спек Патчи Исходники Загрузить Gear Bugs and FR Repocop
#!/bin/sh -e
[ -z "${LESSPIPE_DISABLED-}" ] ||
exit 0
filename="$1" && shift
filetype="$(file -bLz -- "$filename")"
cmd_unpack=
case "$filetype" in
*bzip\ compressed*|*bzip2\ compressed*)
cmd_unpack='/bin/bzcat -q --'
;;
*gzip\ compressed*)
cmd_unpack='/bin/zcat -q --'
;;
xz\ compressed*)
cmd_unpack='/bin/xzcat -q --'
;;
*compress\'d\ data*)
cmd_unpack='/usr/bin/uncompress -c'
;;
*)
[ -z "${FILENAME_IS_COMPRESSED_BY_LZMA-}" ] ||
cmd_unpack='/usr/bin/lzcat -q --'
;;
esac
cmd_f=
[ -z "$cmd_unpack" ] || cmd_f=/dev/stdin
cmd=
cmd_args=
cmd_need_filename=
case "$filetype" in
directory)
cmd='/usr/bin/stat'; cmd_args=''
;;
PNG\ image*|JPEG\ image*|GIF\ image*|TIFF\ image*|X\ pixmap\ image*|MS\ Windows\ icon*)
cmd='/usr/bin/identify'; cmd_args=''
;;
*tar\ archive*)
cmd='/bin/tar'; cmd_args='-tvf'
cmd_unpack=
;;
*cpio\ archive*)
cmd='/bin/cpio'; cmd_args='-tv --quiet -I'
;;
*Zip\ archive*)
cmd='/usr/bin/unzip'; cmd_args='-l -qq --'
;;
*Zoo*)
cmd='/usr/bin/zoo'; cmd_args='xqp'
;;
*ARC*)
cmd='/usr/bin/arc'; cmd_args='pn'
;;
*LHa*)
cmd='/usr/bin/lha'; cmd_args='p'
;;
*RAR*)
cmd='/usr/bin/unrar'; cmd_args='l'
;;
RPM\ v*)
cmd='/usr/bin/rpm'; cmd_args='-qilvp --lastchange --'
;;
current\ ar\ archive*)
cmd='/usr/bin/ar'; cmd_args='tv'
cmd_need_filename=1
;;
ELF\ *|data*)
cmd='/usr/bin/hexdump'; cmd_args='-C --'
cmd_f=
;;
Linux/i386*|MS-DOS\ executable*|MS-Windows*|Win95\ executable*)
cmd='/usr/bin/strings'; cmd_args='--'
;;
*troff\ or\ preprocessor\ input\ text*)
cmd='/usr/bin/nroff'; cmd_args='-t -mandoc --'
;;
*OpenDocument\ Text*|*OpenOffice.org*\ document*)
cmd='/usr/bin/odt2txt'; cmd_args=
cmd_need_filename=1
;;
esac
for f in "${0%/*}"/lesspipe-* "${HOME-}/.less"/lesspipe-*; do
[ ! -s "$f" ] || . "$f"
done
if [ -n "$cmd" ]; then
[ -x "$cmd" ] ||
exit 0
if [ -n "$cmd_unpack" ]; then
[ -n "$cmd_need_filename" ] ||
exec $cmd_unpack "$filename" |$cmd $cmd_args $cmd_f 2>&1
else
exec $cmd $cmd_args "$filename" 2>&1
fi
else
[ -z "$cmd_unpack" ] ||
exec $cmd_unpack "$filename"
fi