X-Git-Url: https://git.madduck.net/etc/mailfilter.git/blobdiff_plain/3d7d576505af2759a6227cec6bef322c688ec3f9..ea165ed0a86ce8827c27f61b000797ce01b90a8f:/bin/resubmit diff --git a/bin/resubmit b/bin/resubmit index 5ef8237..6bf8819 100755 --- a/bin/resubmit +++ b/bin/resubmit @@ -1,13 +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 -FORMAIL="formail -I 'X-Resubmitted: $(date -R)'" +# execute the date -R only during the eval, not immediately +FILTER='/usr/bin/formail -I"X-Resubmitted: $(date -R)"' -if [ -z "${1:-}" ]; then - $FORMAIL | exec $PROCMAIL +if [ -z "${1:-}" ] && [ $list -eq 0 ]; then + eval $FILTER | exec $PROCMAIL else - $FORMAIL "$1" | $PROCMAIL && rm -f "$1" + for f in $files; do + eval $FILTER < "$f" | $PROCMAIL && rm -f "$f" + done fi exit 0