X-Git-Url: https://git.madduck.net/etc/mailfilter.git/blobdiff_plain/ff92db2e5401f79a2721d2ffc20cbd21cb15f109..9bdc8a908d4bd36a3b21e6d9ec75b4a877b2d82a:/bin/resubmit diff --git a/bin/resubmit b/bin/resubmit index 63f8a02..c51244b 100755 --- a/bin/resubmit +++ b/bin/resubmit @@ -1,12 +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 - $PROCMAIL < "$1" && rm -f "$1" + for f in $files; do + eval $FILTER < "$f" | $PROCMAIL && rm -f "$f" + done fi exit 0