martin wrote:
> [email protected] writes:
> > The easy way:
> >
> > from the "what now" prompt, answer "attach /full/path/to/filename"
> >
> > The harder way:
> >
> > You can add a header which I think is "Attachment: /full/path/to/filename"
> > but I'm not positive, can't look it up right now, and really, just use
> > the easy way.
>
> Perfect starting point. Thank you!
>
> Martin
i've attached the simple script i use from within vi to make using the
"Attach:" header easy.
paul
=----------------------
paul fox, [email protected] (arlington, ma, where it's 64.0 degrees)
#!/bin/bash
me=${0##*/}
usage()
{
exec 1>&2
cat <<-EOF
usage: from within vi, use:
!!$me {<mh-message-args>|<filename>} ...
Invoke while positioned on the header/message separation line, which
should look something like \"-------:\" (and which will be
duplicated in the output).
Inserts 'Attach:' headers for all of the given filenames or MH
messages specifiers (but not both -- invoke twice instead).
EOF
exit 1
}
case "$1" in
-*|"") usage ;;
esac
read inputline
if echo "$inputline" | grep -qv '^-\+-:$'
then
echo 'Error: run this only on the "------:" header separator line.'
exit 1
fi
curfold=$(folder -fast)
# arrange to emit the separator line and restore current folder on exit
trap 'echo "$inputline"; test "$chfold" && folder +$curfold >/dev/null' 0
# first get a +folder arg
for a in "$@"
do
case $a in
[+@]*)
if [ "$chfold" ]
then
echo "$me: only one folder at a time!"
exit 1
fi
folder $a >/dev/null || exit 1
chfold=true
mh=true
;;
esac
done
# check each arg as a valid msg spec
# i'd like to just run:
# pick -noseq "$@" >/dev/null 2>&1 && mh=true
# but this will fail for "cur" if cur isn't valid.
for a in "$@"
do
case $a in
cur|cur[:=-]*)
pick -noseq $a >/dev/null || exit 1
mh=true
;;
*)
if pick -noseq $a >/dev/null 2>&1
then
mh=true
else
not_mh="$a"
break
fi
;;
esac
done
if [ "$mh" -a "$not_mh" ]
then
echo "** Don't mix pathnames and MH message specifiers: '$a' **"
exit 1
fi
if [ "$mh" ] # we've got message specifiers
then
mhpath "$@" | sed 's/^/Attach: /'
exit 0
# can't use 'mhpath "$@"' because we want to check existence
for p in $(mhpath "$@")
do
if [ -e $p ]
then
echo "Attach: $p"
else
echo "** No such message '$p' **"
exit 1
fi
done
exit 0
else
# we've got files
for f in "$@"
do
if [ -f $f ]
then
echo "Attach: $f"
else
if [ -e $f ]
then
echo "** Not a regular file: '$f' **"
else
echo "** No such file: '$f' **"
fi
#exit 1
fi
continue
done
fi
exit 0
_______________________________________________
Nmh-workers mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/nmh-workers