Test. Ignore all but mutt users.[Was:A minor diff...]

Ag. Hatzimanikas a.hatzim at gmail.com
Sun Mar 11 10:22:39 PDT 2007

On Τρι, Μάρ 06, at 02:24 Ag. Hatzimanikas wrote:
> Just to be in sync with LFS,the first attachment is to update vim in 198
> patchlevel,although we are now in 207.
> The second patch is just this small diff about the vimrc page.

Because lately I made this habit to forget to send the attachment(s) (like in
the original replying message), here is the solution for the mutt users.

Keep in mind that there is already a patch for this purpose but I am not
sure it will be ever included in the official distribution. I think not.
See #1484 in mutt.org.

Until then, there is a simple solution for the X environment.

Attached is the same script with some minor changes and also to make it work
with xmessage.
Plus is a good chance to test if it really works.

What this script do:

a) First it checks if it is running in X environment; If not, it just send the
   message using the sendmail variable. Change this variable at your will.
b) It checks if the message is a multipart message, and if it is, then it just
   send the message.  
c) It checks the headers (subject mainly) and the body of the message -but not 
   the quoted text- for some common words like; (patch - attached - attachment)
   Again change them at your will.
   If it finds one of these words then it will ask -with a xmessage box- for
   confirmation. If the answer is yes, returns true and send the
   message, else it exits and you have then the chance to attach the
   patch -and not to look like a fool.

I will omit to attach the script right now.

If you don't receive an attachment, I maybe will read again the bash-scripting
-------------- next part --------------


[[ -z "$DISPLAY" ]] && $SENDMAIL "$@"

# save msg in file to re-use it for multiple tests
t=`mktemp -t mutt.XXXXXX` || exit 2
cat > $t

# define tests for: anything you can think of can be done.
# the return code of last exec'ed cmd is used in final decision below
    grep -q '^Content-Type: multipart' $t

    grep -v '^>' $t | grep -Eq '(attachment|patch|attached)'

# query function must return "true" to let the msg pass.
Message="You didn't include any attachment!
Send it anyway?"
Answer=$(xmessage -name "PATCH" -bg red -fg white -nearmouse \
	"$Message" -buttons yes,no -print)
[[ "$Answer" == "yes" ]] && return 0 || return 1

# chain series of functions, use ! || && for logic connections,
# see "man $SHELL" for more possibilites like grouping, dependencies.
if multipart || ! word_attach || ask; then
    $SENDMAIL "$@" < $t
rm -f $t
exit $status

More information about the blfs-dev mailing list