| @@ -1,127 +0,0 @@ | |||||
| #!/bin/bash | |||||
| # | |||||
| # Author: Eric Gebhart | |||||
| # | |||||
| # Purpose: To be called by mutt as indicated by .mailcap to handle mail attachments. | |||||
| # | |||||
| # Function: Copy the given file to a temporary directory so mutt | |||||
| # Won't delete it before it is read by the application. | |||||
| # | |||||
| # Along the way, discern the file type or use the type | |||||
| # That is given. | |||||
| # | |||||
| # Finally use 'open' or 'open -a' if the third argument is | |||||
| # given. | |||||
| # | |||||
| # | |||||
| # Arguments: | |||||
| # | |||||
| # $1 is the file | |||||
| # $2 is the type - for those times when file magic isn't enough. | |||||
| # I frequently get html mail that has no extension | |||||
| # and file can't figure out what it is. | |||||
| # | |||||
| # Set to '-' if you don't want the type to be discerned. | |||||
| # Many applications can sniff out the type on their own. | |||||
| # And they do a better job of it too. | |||||
| # | |||||
| # Open Office and MS Office for example. | |||||
| # | |||||
| # $3 is open with. as in open -a 'open with this .app' foo.xls | |||||
| # | |||||
| # Examples: These are typical .mailcap entries which use this program. | |||||
| # | |||||
| # Image/JPEG; /Users/vdanen/.mutt/view_attachment %s | |||||
| # Image/PNG; /Users/vdanen/.mutt/view_attachment %s | |||||
| # Image/GIF; /Users/vdanen/.mutt/view_attachment %s | |||||
| # | |||||
| # Application/PDF; /Users/vdanen/.mutt/view_attachment %s | |||||
| # | |||||
| # #This HTML example passes the type because file doesn't always work and | |||||
| # #there aren't always extensions. | |||||
| # | |||||
| # text/html; /Users/vdanen/.mutt/view_attachment %s html | |||||
| # | |||||
| # # If your Start OpenOffice.org.app is spelled with a space like this one, <-- | |||||
| # # then you'll need to precede the space with a \ . I found that too painful | |||||
| # # and renamed it with an _. | |||||
| # | |||||
| # Application/vnd.ms-excel; /Users/vdanen/.mutt/view_attachment %s "-" '/Applications/OpenOffice.org1.1.2/Start_OpenOffice.org.app' | |||||
| # Application/msword; /Users/vdanen/.mutt/view_attachment %s "-" '/Applications/OpenOffice.org1.1.2/Start_OpenOffice.org.app' | |||||
| # | |||||
| # | |||||
| # Debugging: If you have problems set debug to 'yes'. That will cause a debug file | |||||
| # be written to /tmp/mutt_attach/debug so you can see what is going on. | |||||
| # | |||||
| # See Also: The man pages for open, file, basename | |||||
| # | |||||
| # the tmp directory to use. | |||||
| tmpdir="$HOME/.tmp/mutt_attach" | |||||
| # the name of the debug file if debugging is turned on. | |||||
| debug_file=$tmpdir/debug | |||||
| # debug. yes or no. | |||||
| #debug="no" | |||||
| debug="yes" | |||||
| type=$2 | |||||
| open_with=$3 | |||||
| # make sure the tmpdir exists. | |||||
| mkdir -p $tmpdir | |||||
| # clean it out. Remove this if you want the directory | |||||
| # to accumulate attachment files. | |||||
| rm -f $tmpdir/* | |||||
| # Mutt puts everything in /tmp by default. | |||||
| # This gets the basic filename from the full pathname. | |||||
| filename=`basename $1` | |||||
| # get rid of the extenson and save the name for later. | |||||
| file=`echo $filename | cut -d"." -f1` | |||||
| if [ $debug = "yes" ]; then | |||||
| echo "1:" $1 " 2:" $2 " 3:" $3 > $debug_file | |||||
| echo "Filename:"$filename >> $debug_file | |||||
| echo "File:"$file >> $debug_file | |||||
| echo "===========================" >> $debug_file | |||||
| fi | |||||
| # if the type is empty then try to figure it out. | |||||
| if [ -z $type ]; then | |||||
| file $1 | |||||
| type=`file -bi $1 | cut -d"/" -f2` | |||||
| fi | |||||
| # if the type is '-' then we don't want to mess with type. | |||||
| # Otherwise we are rebuilding the name. Either from the | |||||
| # type that was passed in or from the type we discerned. | |||||
| if [ $type = "-" ]; then | |||||
| newfile=$filename | |||||
| else | |||||
| newfile=$file.$type | |||||
| fi | |||||
| newfile=$tmpdir/$newfile | |||||
| # Copy the file to our new spot so mutt can't delete it | |||||
| # before the app has a chance to view it. | |||||
| cp $1 $newfile | |||||
| if [ $debug = "yes" ]; then | |||||
| echo "File:" $file "TYPE:" $type >> $debug_file | |||||
| echo "Newfile:" $newfile >> $debug_file | |||||
| echo "Open With:" $open_with >> $debug_file | |||||
| fi | |||||
| # If there's no 'open with' then we can let preview do it's thing. | |||||
| # Otherwise we've been told what to use. So do an open -a. | |||||
| if [ -z $open_with ]; then | |||||
| open $newfile | |||||
| else | |||||
| open -a "$open_with" $newfile | |||||
| fi | |||||