update tools/textviewer.sh (sync with HEAD)
[claws.git] / tools / textviewer.sh
index c5360ddd0bcc5b296fe5da6ace641c499eaf1032..caf67f63053eb64597a311caee94c3ae80d48435 100644 (file)
 #
 # Change Log
 #
+# 2003-03-25
+#      - make extension matching case insensitive
+#
+# 2003-03-23
+#      - Support for MS Excel (xlhtml) and Powerpoint (ppthtml)
+#
+# 2004-03-09
+#      - Support for HTML (html2text)
+#
+# 2004-02-13
+#      - added support for perl and shell scripts, and recognize that
+#        'file' will always return 'text' somewhere in its output for
+#        files that, well, contain text
+#
 # 2004-01-25
 #      - added brief messages describing whats going on
 #
@@ -98,8 +112,10 @@ FILETYPE=`file --brief "$1"` ||
        exit 1 
 };
 
-case "$1" in 
+FNAME=`echo "$1" | tr [A-Z] [a-z]`
+case "$FNAME" in 
        *.doc)  TYPE=MSWORD     ;;
+       *.ppt)  TYPE=POWERPOINT ;;
        *.zip)  TYPE=ZIP        ;;
        *.tar.gz|*.tgz) TYPE=TARGZ ;;
        *.tar.bz2|*.tar.bz)     TYPE=TARBZ ;;
@@ -111,23 +127,23 @@ case "$1" in
        *.rtf)  TYPE=RTF        ;;
        *.sxw)  TYPE=OOWRITER   ;;
        *.pdf)  TYPE=PDF        ;;
+       *.sh)   TYPE=TEXT       ;;
+       *.pl)   TYPE=TEXT       ;;
+        *.html|*.htm) TYPE=HTML ;;
+       *.xls)  TYPE=EXCEL      ;;
 esac
 
 if [ "$TYPE" == "" ]   
 then
        case $FILETYPE in 
-               "'diff'"*)      TYPE=TEXT       ;;
+               *"HTML"*)       TYPE=HTML ;;
+               *"text"*)       TYPE=TEXT ;;
                gzip*)          TYPE=GZIP ;;
                bzip2*)         TYPE=BZIP ;;
                "POSIX tar archive"*)   TYPE=TAR        ;;
                "Zip "*)        TYPE=ZIP  ;;
-               ASCII*)         TYPE=TEXT       ;;
                "Rich Text Format"*)    
                                TYPE=RTF  ;;
-               "smtp mail text"* | "RFC 822 mail text"*)       
-                               TYPE=TEXT       ;;
-               "Bourne shell script"* | "Bourne-Again shell script"*)
-                               TYPE=TEXT       ;;
        esac
 fi
 
@@ -174,6 +190,32 @@ case $TYPE in
                echo -e "Displaying \"$1\" using \"antiword\":\n";
                antiword -w 72 "$1"                             ;;
 
+       POWERPOINT) which ppthtml > /dev/null 2>&1 ||
+               { 
+                       echo "Program 'ppthtml' for displaying Powerpoint files not found" >&2
+                       exit 1
+               };
+               which html2text > /dev/null 2>&1 ||                           
+                {                                                               
+                        echo "Program 'html2text' for displaying Powerpoint files not found" >&2
+                        exit 1                                                  
+                };   
+               echo -e "Displaying \"$1\" using \"ppthtml\" and \"html2text\":\n";
+               ppthtml "$1" | html2text                        ;;
+
+        EXCEL) which xlhtml > /dev/null 2>&1 ||
+                {
+                        echo "Program 'xlhtml' for displaying Excel files not found" >&2
+                        exit 1
+                };
+                which html2text > /dev/null 2>&1 || 
+                {
+                        echo "Program 'html2text' for displaying Excel files not found" >&2
+                        exit 1
+                };
+                echo -e "Displaying \"$1\" using \"xlhtml\" and \"html2text\":\n";
+                xlhtml "$1" | html2text                        ;;
        OOWRITER) which ooo2txt > /dev/null 2>&1 ||
                {
                        echo "Program 'ooo2txt' for converting OpenOffice Writer files not files not found" >&2
@@ -190,5 +232,12 @@ case $TYPE in
                echo -e "Displaying \"$1\" using \"pdftotext\":\n";
                pdftotext "$1"  -                               ;;
 
+       HTML) which html2text > /dev/null 2>&1 ||
+               {
+                       echo "Program 'html2text' for converting HTML files not found" >&2
+                       exit 1
+               };
+               html2text -nobs "$1" ;;
+
        *)      echo "Unsupported file type \"$FILETYPE\", cannot display.";;
 esac