X-Git-Url: https://git.madduck.net/etc/mailfilter.git/blobdiff_plain/eddb5ee317cb1d447bc5d9fa74de6287f2838a59..34611162529a78b56ba5e4de43b8db42c31d5779:/bin/resubmit diff --git a/bin/resubmit b/bin/resubmit index 01990b2..c51244b 100755 --- a/bin/resubmit +++ b/bin/resubmit @@ -1,10 +1,60 @@ #!/bin/sh set -eu +ME="${0##*/}" + +about() +{ + echo "$ME -- resubmit messages to the mail filter" + echo "Copyright © martin f. krafft " + echo "Released under the terms of the Artistic Licence 2.0" +} + +usage() +{ + echo "Usage: $ME [options] [ ...]" + echo + echo "Valid options are:" + cat <<-_eof | column -s\& -t + -V|--version & show version information. + -h|--help & show this output. + -l|--list & process the argument list (even if empty), never stdin + _eof +} + +SHORTOPTS=Vhl +LONGOPTS=version,help,list + +list=0 +files= + +for opt in $(getopt -n $ME -o $SHORTOPTS -l $LONGOPTS -u -- "$@"); do + case "$opt" in + -V|--version) about; exit 0;; + -h|--help) about; echo; usage; exit 0;; + -l|--list) list=1;; + --) :;; + *) + if [ -f "$opt" ] && [ -r "$opt" ]; then + files="$files $opt" + else + echo "E: unknown argument: $opt" >&2 + exit 1 + fi + ;; + esac +done + PROCMAIL=$HOME/.etc/mailfilter/procmail/procmailrc +# execute the date -R only during the eval, not immediately +FILTER='/usr/bin/formail -I"X-Resubmitted: $(date -R)"' -if [ -z "$1" ]; then - cat | exec $PROCMAIL +if [ -z "${files:-}" ] && [ $list -eq 0 ]; then + eval $FILTER | exec $PROCMAIL else - exec $PROCMAIL < "$1" + for f in $files; do + eval $FILTER < "$f" | $PROCMAIL && rm -f "$f" + done fi + +exit 0