#!/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`