X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=usr_bin%2Flesspipe.sh;fp=usr_bin%2Flesspipe.sh;h=0000000000000000000000000000000000000000;hb=6ae790e9215b65d8394ef3a379f0bdc48474a6c3;hp=b41cc4c1de5031df32baa7d073ac2f20c5bd11bc;hpb=6fb922ca4bc798b9b4b53cb8d2b8df337a51ae63;p=grml-scripts.git diff --git a/usr_bin/lesspipe.sh b/usr_bin/lesspipe.sh deleted file mode 100755 index b41cc4c..0000000 --- a/usr_bin/lesspipe.sh +++ /dev/null @@ -1,510 +0,0 @@ -#!/bin/bash -# lesspipe.sh, a preprocessor for less (version 1.53) -#=============================================================================== -### THIS FILE IS GENERATED FROM lesspipe.sh.in, PLEASE GET THE TAR FILE -### ftp://ftp.ifh.de/pub/unix/utility/lesspipe.tar.gz -### AND RUN configure TO GENERATE A lesspipe.sh THAT WORKS IN YOUR ENVIRONMENT -#=============================================================================== -# -# Usage: lesspipe.sh is called when the environment variable LESSOPEN is set: -# LESSOPEN="|lesspipe.sh %s"; export LESSOPEN (sh like shells) -# setenv LESSOPEN "|lesspipe.sh %s" (csh, tcsh) -# Use the fully qualified path if lesspipe.sh is not in the search path -# View files in multifile archives: -# less archive_file:contained_file -# This can be used to extract ASCII files from a multifile archive: -# less archive_file:contained_file>extracted_file -# As less is not good for extracting binary data use instead: -# lesspipe.sh archive_file:contained_file>extracted_file -# Even a file in a multifile archive that itself is contained in yet -# another archive can be viewed this way: -# less super_archive:archive_file:contained_file -# Display the last file in the file1:..:fileN chain in raw format: -# Suppress input filtering: less file1:..:fileN: (append a colon) -# Suppress decompression: less file1:..:fileN:: (append 2 colons) -# Required programs: -# see the separate file README -# Supported formats: -# gzip, compress, bzip2, zip, rar, tar, nroff, ar archive, pdf, ps, -# dvi, shared library, executable, directory, RPM, Microsoft Word, -# Openoffice 1.x and OASIS (Opendocument) formats, Debian, mp3 files, -# image formats (png, gif, jpeg, tiff, ...), utf-16 text, -# iso images and filesystems on removable media via /dev/xxx -# -# License: GPL (see file LICENSE) -# -# History: see separate file ChangeLog or -# http://www.desy.de/zeuthen/~friebel/unix/lesspipe.html -# -# Author: Wolfgang Friebel DESY Zeuthen (Wolfgang.Friebel AT desy.de) -# -#=============================================================================== -#setopt KSH_ARRAYS SH_WORD_SPLIT -tarcmd=gtar -if [[ `tar --version 2>&1` = *GNU* ]]; then - tarcmd=tar -fi -filecmd='file -L -s'; -sep=: # file name separator -altsep== # alternate separator character -if [[ -f "$1" && "$1" = *$sep* || "$1" = *$altsep ]]; then - sep=$altsep -fi -tmp=/tmp/.lesspipe.$$ # temp file name -trap 'rm -f $tmp $tmp.dvi $tmp. $tmp.. $tmp... $tmp.1' 0 -trap - PIPE - -show () { -# if [[ "$1" = *.pod || "$1" = *.pm ]]; then -# pod=1 -# fi - file1="${1%%$sep*}" - rest1="${1#$file1}" - while [[ "$rest1" = ::* ]]; do - if [[ "$rest1" = "::" ]]; then - break - else - rest1="${rest1#$sep$sep}" - file1="${rest1%%$sep*}" - rest1="${rest1#$file1}" - file1="${1%$rest1}" - fi - done - rest11="${rest1#$sep}" - file2="${rest11%%$sep*}" - rest2="${rest11#$file2}" - while [[ "$rest2" = ::* ]]; do - if [[ "$rest2" = "::" ]]; then - break - else - rest2="${rest2#$sep$sep}" - file2="${rest2%%$sep*}" - rest2="${rest2#$file2}" - file2="${rest11%$rest2}" - fi - done - if [[ "$file2" != "" ]]; then - in_file="-i$file2" - fi - rest2="${rest11#$file2}" - rest11="$rest1" - if [[ "$cmd" = "" ]]; then - type=`$filecmd "$file1" | cut -d : -f 2-` - if [[ ! -f "$file1" ]]; then - if [[ "$type" = *directory* ]]; then - if [[ "$file1" = *.pkg ]]; then - if [[ -f "$file1/Contents/Archive.bom" ]]; then - type="bill of materials" - file1="$file1/Contents/Archive.bom" - echo "==> This is a Mac OS X archive directory, showing its contents (bom file)" - fi - fi - fi - fi - get_cmd "$type" "$file1" "$rest1" - if [[ "$cmd" != "" ]]; then - show "-$rest1" - else - isfinal "$type" "$file1" "$rest11" - fi - elif [[ "$c1" = "" ]]; then - c1[0]=${cmd[0]};c1[1]=${cmd[1]};c1[2]=${cmd[2]} - if [[ "${cmd[3]}" != "" ]]; then - c1[3]=${cmd[3]}; - fi - type=`"${c1[@]}" | dd bs=40000 count=1 2>/dev/null | filepipe | cut -d : -f 2-` - get_cmd "$type" "$file1" "$rest1" - if [[ "$cmd" != "" ]]; then - show "-$rest1" - else - "${c1[@]}" | isfinal "$type" - "$rest11" - fi - elif [[ "$c2" = "" ]]; then - c2[0]=${cmd[0]};c2[1]=${cmd[1]};c2[2]=${cmd[2]} - if [[ "${cmd[3]}" != "" ]]; then - c2[3]=${cmd[3]}; - fi - type=`"${c1[@]}" | "${c2[@]}" | dd bs=40000 count=1 2>/dev/null | filepipe | cut -d : -f 2-` - get_cmd "$type" "$file1" "$rest1" - if [[ "$cmd" != "" ]]; then - show "-$rest1" - else - "${c1[@]}" | "${c2[@]}" | isfinal "$type" - "$rest11" - fi - elif [[ "$c3" = "" ]]; then - c3[0]=${cmd[0]};c3[1]=${cmd[1]};c3[2]=${cmd[2]} - if [[ "${cmd[3]}" != "" ]]; then - c3[3]=${cmd[3]}; - fi - type=`"${c1[@]}" | "${c2[@]}" | "${c3[@]}" | dd bs=40000 count=1 2>/dev/null | filepipe | cut -d : -f 2-` - get_cmd "$type" "$file1" "$rest1" - if [[ "$cmd" != "" ]]; then - show "-$rest1" - else - "${c1[@]}" | "${c2[@]}" | "${c3[@]}" | isfinal "$type" - "$rest11" - fi - elif [[ "$c4" = "" ]]; then - c4[0]=${cmd[0]};c4[1]=${cmd[1]};c4[2]=${cmd[2]} - if [[ "${cmd[3]}" != "" ]]; then - c4[3]=${cmd[3]}; - fi - type=`"${c1[@]}" | "${c2[@]}" | "${c3[@]}" | "${c4[@]}" | dd bs=40000 count=1 2>/dev/null | filepipe | cut -d : -f 2-` - get_cmd "$type" "$file1" "$rest1" - if [[ "$cmd" != "" ]]; then - show "-$rest1" - else - "${c1[@]}" | "${c2[@]}" | "${c3[@]}" | "${c4[@]}" | isfinal "$type" - "$rest11" - fi - elif [[ "$c5" = "" ]]; then - c5[0]=${cmd[0]};c5[1]=${cmd[1]};c5[2]=${cmd[2]} - if [[ "${cmd[3]}" != "" ]]; then - c5[3]=${cmd[3]}; - fi - type=`"${c1[@]}" | "${c2[@]}" | "${c3[@]}" | "${c4[@]}" | "${c5[@]}" | dd bs=40000 count=1 2>/dev/null | filepipe | cut -d : -f 2-` - get_cmd "$type" "$file1" "$rest1" - if [[ "$cmd" != "" ]]; then - echo "$0: Too many levels of encapsulation" - else - "${c1[@]}" | "${c2[@]}" | "${c3[@]}" | "${c4[@]}" | "${c5[@]}" | isfinal "$type" - "$rest11" - fi - fi -} - -get_cmd () { - cmd= - if [[ "$2" = /*\ * ]]; then - ln -s "$2" $tmp.. - set "$1" $tmp.. - elif [[ "$2" = *\ * ]]; then - ln -s "$PWD"/"$2" $tmp.. - set "$1" $tmp.. - fi - - if [[ "$1" = *bzip*compress* || "$1" = *compress[\'e]d\ * || "$1" = *packed\ data* ]]; then - if [[ "$3" = $sep$sep ]]; then - return - elif [[ "$1" = *bzip*compress* ]]; then - cmd=(bzip2 -cd "$2") - else - cmd=(gzip -cd "$2") - fi - return - fi - - rest1="$rest2" - if [[ "$file2" != "" ]]; then - if [[ "$1" = *\ tar* ]]; then - cmd=($tarcmd Oxf "$2" "$file2") - elif [[ "$1" = *Debian* ]]; then - istemp "ar p" "$2" data.tar.gz | gzip -dc - > $tmp. - cmd=($tarcmd Oxf $tmp. "$file2") - elif [[ "$1" = *RPM* ]]; then - cmd=(isrpm "$2" "$file2") - elif [[ "$1" = *Zip* ]]; then - cmd=(istemp "unzip -avp" "$2" "$file2") - elif [[ "$1" = *\ RAR\ archive* ]]; then - cmd=(istemp "unrar p -inul" "$2" "$file2") - elif [[ "$1" = *\ 7-zip\ archive* ]]; then - if [[ "$2" = - ]]; then - cmd=(iscmd2 "7za e -so" - "$file2") - else - cmd=(iscmd "7za e -so" "$2" "$file2") - fi - elif [[ "$1" = *[Cc]abinet* ]]; then - cmd=(iscab "$2" "$file2") - elif [[ "$1" = *\ ar\ archive* ]]; then - cmd=(istemp "ar p" "$2" "$file2") - elif [[ "$1" = *x86\ boot\ sector* ]]; then - cmd=(isfloppy "$2" "$file2") - elif [[ "$1" = *ISO\ 9660* ]]; then - cmd=(isoinfo "-i$2" "-x$file2") - fi - else - if [[ "$1" = *\ 7-zip\ archive* ]]; then - if [[ "$2" != - ]]; then - if [[ `7za l "$2" | tail -1` = *\ 1\ file ]]; then - cmd=("7za e -so" "$2") - fi - fi - fi - fi -} - -filepipe () { - rm -f $tmp... - cat > $tmp... - $filecmd $tmp... -} - -iscab () { - if [[ "$1" = - ]]; then - rm -f $tmp - cat > $tmp - set $tmp "$2" - fi - cabextract -pF "$2" "$1" -} - -isdvi () { - if [[ "$1" = - ]]; then - set $1 "" - fi - if [[ "$1" != *.dvi ]]; then - rm -f $tmp.dvi - cat $1 > $tmp.dvi - set $tmp.dvi "$1" - fi - dvi2tty "$1" -} - -iscmd () { - $1 "$2" "$3" 2>/dev/null -} - -iscmd2 () { - cat > $tmp. - $1 $tmp. "$3" 2>/dev/null -} - -istemp () { - if [[ "$2" = - ]]; then - rm -f $tmp - cat > $tmp - set $1 $tmp "$3" - fi - $1 "$2" "$3" -} - -isrpm () { - if [[ "$1" = - ]]; then - rm -f $tmp - cat > $tmp - set $tmp "$2" - fi - echo $tmp.1 > $tmp. -# GNU cpio has an undocumented but most useful --rename-batch-file switch - rm -f $tmp.1 - rpm2cpio "$1"|cpio -i --quiet --rename-batch-file $tmp. "${2##/}" - cat $tmp.1 -} - - -isfloppy () { -# get the device to drive mapping - mtoolstest | - while read i1 i2 - do - if [[ "$i1" = *$1* ]]; then - if [[ "$2" = "" ]]; then - mdir $drive - else - mtype $drive"$2" - fi - return - elif [[ "$i1" = drive ]]; then - drive=$i2 - fi - done -} - - -isfinal() { - - if [[ "$3" = $sep$sep ]]; then - cat "$2" - return - elif [[ "$3" = $sep* ]]; then - if [[ "$3" = $sep ]]; then - echo "==> append :. or : to activate syntax highlighting" - else - lang=${3#$sep} - lang="-l ${lang#.}" - lang=${lang%%-l } - dir=${LESSOPEN#\|} - dir=${dir%%lesspipe.sh*\%s} - ${dir}code2color $PPID ${in_file:+"$in_file"} $lang "$2" - if [[ $? = 0 ]]; then - return - fi - fi - cat "$2" - return - elif [[ "$2" = - ]]; then - case "$1" in - *RPM*|*\ ar\ archive*|*shared*|*Zip*|*\ RAR\ archive*) - cat > $tmp.dvi - set "$1" $tmp.dvi - esac - fi - if [[ "$1" = *No\ such* ]]; then - return - elif [[ "$1" = *directory* ]]; then - echo "==> This is a directory, showing the output of ls -lAL" - ls -lAL "$2" - elif [[ "$1" = *\ tar* ]]; then - echo "==> use tar_file${sep}contained_file to view a file in the archive" - $tarcmd tvf "$2" - elif [[ "$1" = *RPM* ]]; then - echo "==> use RPM_file${sep}contained_file to view a file in the RPM" - rpm -qivp "$2" - echo "================================= Content ======================================" - rpm2cpio "$2"|cpio -i -tv --quiet - elif [[ "$1" = *roff* ]]; then - DEV=latin1 - if [[ "$LANG" = ja* ]]; then - DEV=nippon - fi - MACRO=andoc - if [[ "$2" = *.me ]]; then - MACRO=e - elif [[ "$2" = *.ms ]]; then - MACRO=s - fi - echo "==> append $sep to filename to view the nroff source" - groff -s -p -t -e -T$DEV -m$MACRO "$2" - elif [[ "$1" = *Debian* ]]; then - echo "==> use Deb_file${sep}contained_file to view a file in the Deb" - dpkg -I "${2#-}" - istemp "ar p" "$2" data.tar.gz | gzip -dc - | $tarcmd tvf - -# elif [[ "$1" = *perl\ *script\ text* || "$pod" = 1 ]]; then -# pod2text "$2" > $tmp.dvi -# if [[ -s $tmp.dvi ]]; then -# echo "==> append $sep to filename to view the Perl source" -# cat $tmp.dvi -# fi - elif [[ "$1" = *\ script* ]]; then - set "plain text" "$2" - elif [[ "$1" = *text\ executable* ]]; then - set "plain text" "$2" - elif [[ "$1" = *PostScript* ]]; then - echo "==> append $sep to filename to view the postscript file" - which pstotext >/dev/null 2>&1 - if [[ $? = 0 ]]; then - pstotext "${2#-}" - else - ps2ascii "$2" - fi - elif [[ "$1" = *executable* ]]; then - echo "==> append $sep to filename to view the binary file" - if [[ "$2" = "-" ]]; then - strings - else - strings "$2" - fi - elif [[ "$1" = *\ ar\ archive* ]]; then - echo "==> use library${sep}contained_file to view a file in the archive" - ar vt "$2" - elif [[ "$1" = *shared* ]]; then - echo "==> This is a dynamic library, showing the output of nm" - nm "$2" - elif [[ "$1" = *Zip* ]]; then - echo "==> use zip_file${sep}contained_file to view a file in the archive" - unzip -lv "$2" - elif [[ "$1" = *\ RAR\ archive* ]]; then - echo "==> use rar_file${sep}contained_file to view a file in the archive" - unrar v "$2" - elif [[ "$1" = *\ 7-zip\ archive* ]]; then - echo "==> use 7-zip_file${sep}contained_file to view a file in the archive" - if [[ "$2" = - ]]; then - istemp "7za l" - - else - 7za l "$2" - fi - elif [[ "$1" = *[Cc]abinet* ]]; then - echo "==> use cab_file${sep}contained_file to view a file in the cabinet" - cabextract -l "$2" - elif [[ "$1" = *x86\ boot\ sector* ]]; then - echo "==> use $2${sep}contained_file to view a file on the floppy" - isfloppy "$2" - elif [[ "$1" = *\ DVI* ]]; then - echo "==> append $sep to filename to view the binary DVI file" - isdvi "$2" - elif [[ "$1" = *HTML* ]]; then - echo "==> append $sep to filename to view the HTML source" - html2text -style pretty "$2" - elif [[ "$1" = *PDF* ]]; then - echo "==> append $sep to filename to view the PDF source" - istemp pdftotext "$2" - - elif [[ "$1" = *Microsoft\ Word* || "$1" = *Microsoft\ Office* ]]; then - antiword "$2" - elif [[ "$1" = *Rich\ Text\ Format* ]]; then - echo "==> append $sep to filename to view the RTF source" - unrtf --html "$2" 2>/dev/null | html2text -style pretty - elif [[ "$1" = *OpenDocument\ [CHMPST]* || "$1" = *OpenOffice\.org\ 1\.x\ [CIWdgpst]* ]]; then - conv="utf8tolatin1" - if [[ "$LANG" = *UTF-8 ]]; then - conv="cat" - fi - echo "==> append $sep to filename to view the OpenOffice or OpenDocument source" - istemp "unzip -avp" "$2" content.xml | o3tohtml | $conv | html2text -style pretty - elif [[ "$1" = *ISO\ 9660* ]]; then - if [[ "$2" != - ]]; then - isoinfo -d -i "$2" - joliet=`isoinfo -d -i "$2" | egrep '^Joliet'|cut -c1` - echo "================================= Content ======================================" - isoinfo -lR$joliet -i "$2" - fi - elif [[ "$1" = *image\ data* || "$1" = *image\ text* || "$1" = *JPEG\ file* || "$1" = *JPG\ file* ]]; then - identify -verbose "$2" -##ifdef jpeg2ascii,convert -## get jpeg2ascii (CVS) from http://dyne.org/cgi-bin/cvsweb.cgi/jpeg2ascii/ -# very experimental attempt to display images using ASCII art (do not use) -# elif [[ "$1" = *image\ data* || "$1" = *image\ text* || "$1" = *JPEG\ file* || "$1" = *JPG\ file* ]]; then -# convert -colorspace gray -geometry 100%x50% -contrast -geometry 320x1024 "$2" /tmp/.lesspipe1$$.jpg -# jpeg2ascii < /tmp/.lesspipe$$.jpg 2> /dev/null -# rm /tmp/.lesspipe$$.jpg /tmp/.lesspipe1$$.jpg -##elif pbmtoascii,convert -# ASCII Art conversion using netbpm -# elif [[ "$1" = *image\ data* || "$1" = *image\ text* || "$1" = *JPEG\ file* || "$1" = *JPG\ file* ]]; then -# convert -contrast -geometry 80x2048 "$2" /tmp/.lesspipe$$.pbm -# pbmtoascii /tmp/.lesspipe$$.pbm 2> /dev/null -# rm /tmp/.lesspipe$$.pbm -##endif -##ifdef mplayer -# elif [[ "$1" = *MPEG\ system\ stream* || "$1" = *RIFF* || "$1" = *AVI* ]]; then -# mplayer -vo aa -aadriver slang -aanodim -aanobold -aacontrast 50 -aabright 1 "$2" 2> /dev/null -##endif - elif [[ "$1" = *MPEG\ *layer\ 3\ audio* || "$1" = *mp3\ file* || "$1" = *MP3* ]]; then - mp3info "$2" - elif [[ "$1" = *bill\ of\ materials* ]]; then - lsbom -p MUGsf "$2" - elif [[ "$1" = *perl\ Storable* ]]; then - perl -MStorable=retrieve -MData::Dumper -e '$Data::Dumper::Indent=1;print Dumper retrieve shift' "$2" - elif [[ "$1" = *UTF-16* ]]; then - iconv -f utf-16 "$2" - elif [[ "$1" = *data* ]]; then - echo "==> append $sep to filename to view the $1 source" - if [[ "$2" = "-" ]]; then - strings - else - strings "$2" - fi - else - set "plain text" "$2" - fi - if [[ "$1" = *plain\ text* ]]; then - dir=${LESSOPEN#\|} - dir=${dir%%lesspipe.sh*\%s} - ${dir}code2color $PPID ${in_file:+"$in_file"} "$2" - if [[ $? = 0 ]]; then - return - fi - fi - if [[ "$2" = - ]]; then - cat - fi -} - -# calling show with arg1 arg2 ... is equivalent to calling with arg1:arg2:... -IFS=$sep a="$@" -IFS=' ' -if [[ "$a" = "" ]]; then - if [[ "$SHELL" = *csh ]]; then - echo "setenv LESSOPEN \"|$0 %s\"" - else - echo "LESSOPEN=\"|$0 %s\"" - echo "export LESSOPEN" - fi -else - show "$a" -fi