All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@git.madduck.net.
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
3 # check-attachments — check that referenced attachments are actually attached
5 # This is based on the idea behind
6 # http://www.vim.org/scripts/download_script.php?src_id=3165: if the mail body
7 # matches a given regular expression, then check whether there are also
8 # non-PGP MIME parts in the message, or else refuse to send the message.
10 # You can override the checking by adding the X-No-Attachments header to the
13 # Copyright © 2010 martin f. krafft <madduck@madduck.net>
14 # Released under the terms of the Artistic Licence 2.0
18 RE_ENGLISH='attach(ing|ed|ment)?|included\W+(with|in)\W+th(is|e\W+(curr|pres)ent)\W+mail'
19 RE_GERMAN='an(geh(ä|=E4|=C3=A4)ngt|h(ä|=E4|=C3=A4)ngsel|bei)|bei(gef(ü|=FC|=C3=BC)gt|lage)|(im|siehe)\W+(anhang|beilage)'
20 RE_FRENCH='attach(e|er|(é|=E9|=C3=A9)e?s?|ement|ant)'
21 OVERRIDE_HEADER=X-No-Attach
23 if ! grep -qi "^${OVERRIDE_HEADER}:" "$1" \
24 && egrep -v '^(> |Content-Disposition:)' "$1" | egrep -zi "($RE_ENGLISH|$RE_GERMAN|$RE_FRENCH)"; then
26 nr_attach=$(sed -rne 's/^Content-Type:[[:space:]]+//pi' "$1" |
27 egrep -civ '^(multipart/|application/pgp-signature)')
29 if [ $nr_attach -lt 2 ]; then
30 echo >&2 "E: the mail message likely references an attachment,"
31 echo >&2 "E: but there seems to be no non-PGP MIME part."
32 echo >&2 "E: (add the $OVERRIDE_HEADER header to override the check)."
37 sed -i -e "/^${OVERRIDE_HEADER}:/d" "$1"