Advertisement
Guest User

Untitled

a guest
Jul 7th, 2012
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.65 KB | None | 0 0
  1. #!/bin/sh -e
  2.  
  3. [ -z "${LESSPIPE_DISABLED-}" ] ||
  4.         exit 0
  5.  
  6. filename="$1" && shift
  7. filetype="$(file -bLz -- "$filename")"
  8.  
  9. cmd_unpack=
  10. case "$filetype" in
  11.         *bzip\ compressed*|*bzip2\ compressed*)
  12.                 cmd_unpack='/bin/bzcat -q --'
  13.                 ;;
  14.         *gzip\ compressed*)
  15.                 cmd_unpack='/bin/zcat -q --'
  16.                 ;;
  17.         xz\ compressed*)
  18.                 cmd_unpack='/bin/xzcat -q --'
  19.                 ;;
  20.         *compress\'d\ data*)
  21.                 cmd_unpack='/usr/bin/uncompress -c'
  22.                 ;;
  23.         *)
  24.                 [ -z "${FILENAME_IS_COMPRESSED_BY_LZMA-}" ] ||
  25.                         cmd_unpack='/usr/bin/lzcat -q --'
  26.                 ;;
  27. esac
  28.  
  29. cmd_f=
  30. [ -z "$cmd_unpack" ] || cmd_f=/dev/stdin
  31.  
  32. cmd=
  33. cmd_args=
  34. cmd_need_filename=
  35. cmd_tail_args=
  36.  
  37. case "$filetype" in
  38.         directory)
  39.                 cmd='/usr/bin/stat'; cmd_args=''
  40.                 ;;
  41.         PNG\ image*|JPEG\ image*|GIF\ image*|TIFF\ image*|X\ pixmap\ image*|MS\ Windows\ icon*)
  42.                 cmd='/usr/bin/identify'; cmd_args=''
  43.                 ;;
  44.         *tar\ archive*)
  45.                 cmd='/bin/tar'; cmd_args='-tvf'
  46.                 cmd_unpack=
  47.                 ;;
  48.         *cpio\ archive*)
  49.                 cmd='/bin/cpio'; cmd_args='-tv --quiet -I'
  50.                 ;;
  51.         *Zip\ archive*)
  52.                 cmd='/usr/bin/unzip'; cmd_args='-l -qq --'
  53.                 ;;
  54.         *Zoo*)
  55.                 cmd='/usr/bin/zoo'; cmd_args='xqp'
  56.                 ;;
  57.         *ARC*)
  58.                 cmd='/usr/bin/arc'; cmd_args='pn'
  59.                 ;;
  60.         *LHa*)
  61.                 cmd='/usr/bin/lha'; cmd_args='p'
  62.                 ;;
  63.         *RAR*)
  64.                 cmd='/usr/bin/unrar'; cmd_args='l'
  65.                 ;;
  66.         Debian\ binary\ package*)
  67.                 cmd='/home/user/bin/dpkg-info';
  68.             # /home/user/bin/dpkg-info:
  69.             # #!/bin/sh
  70.             # echo $1
  71.             # /usr/bin/dpkg-deb -I $1
  72.             # /usr/bin/dpkg-deb -c $1
  73.  
  74.                 ;;
  75.         current\ ar\ archive*)
  76.                 cmd='/usr/bin/ar'; cmd_args='tv'
  77.                 cmd_need_filename=1
  78.                 ;;
  79.         ELF\ *|data*)
  80.                 cmd='/usr/bin/hexdump'; cmd_args='-C --'
  81.                 cmd_f=
  82.                 ;;
  83.         Linux/i386*|MS-DOS\ executable*|MS-Windows*|Win95\ executable*)
  84.                 cmd='/usr/bin/strings'; cmd_args='--'
  85.                 ;;
  86.         *troff\ or\ preprocessor\ input\ text*)
  87.                 cmd='/usr/bin/nroff'; cmd_args='-t -mandoc --'
  88.                 ;;
  89.         *OpenDocument\ Text*|*OpenOffice.org*\ document*)
  90.                 cmd='/usr/bin/odt2txt';
  91.                 cmd_need_filename=1
  92.                 ;;
  93.         *Composite\ Document\ File\ V2\ Document*)
  94.                 cmd='/usr/bin/catdoc';
  95.                 ;;
  96.         *PDF\ document*)
  97.                 cmd='/usr/bin/pdftotext'; cmd_args='-layout '
  98.                 cmd_tail_args='-'
  99.                 cmd_need_filename=1
  100.                 ;;
  101.         *Unicode\ text*|*ASCII\ text*)
  102.                 cmd='/usr/share/source-highlight/src-hilite-lesspipe.sh'; cmd_args=
  103.                 ;;
  104. esac
  105.  
  106. for f in "${0%/*}"/lesspipe-* "${HOME-}/.less"/lesspipe-*; do
  107.         [ ! -s "$f" ] || . "$f"
  108. done
  109.  
  110. if [ -n "$cmd" ]; then
  111.         [ -x "$cmd" ] ||
  112.                 exit 0
  113.  
  114.         if [ -n "$cmd_unpack" ]; then
  115.                 [ -n "$cmd_need_filename" ] ||
  116.                         exec $cmd_unpack "$filename" |$cmd $cmd_args $cmd_f $cmd_tail_args 2>&1
  117.         else
  118.                 exec $cmd $cmd_args "$filename" $cmd_tail_args 2>&1
  119.         fi
  120. else
  121.         [ -z "$cmd_unpack" ] ||
  122.                 exec $cmd_unpack "$filename"
  123. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement