X-Git-Url: https://git.madduck.net/etc/mailfilter.git/blobdiff_plain/5950d5c4e05d47338e97a80dfa0909bf9c870ee5..5816f07085e6227948cce2a82244f4fab7e0f4b4:/bin/resubmit diff --git a/bin/resubmit b/bin/resubmit index 6bf8819..52967a5 100755 --- a/bin/resubmit +++ b/bin/resubmit @@ -19,13 +19,15 @@ usage() -V|--version & show version information. -h|--help & show this output. -l|--list & process the argument list (even if empty), never stdin + -r|--deliver-read & mark messages read on delivery _eof } -SHORTOPTS=Vhl -LONGOPTS=version,help,list +SHORTOPTS=Vhlr +LONGOPTS=version,help,list,deliver-read list=0 +mark_read=0 files= for opt in $(getopt -n $ME -o $SHORTOPTS -l $LONGOPTS -u -- "$@"); do @@ -33,6 +35,7 @@ for opt in $(getopt -n $ME -o $SHORTOPTS -l $LONGOPTS -u -- "$@"); do -V|--version) about; exit 0;; -h|--help) about; echo; usage; exit 0;; -l|--list) list=1;; + -r|--deliver-read) mark_read=1;; --) :;; *) if [ -f "$opt" ] && [ -r "$opt" ]; then @@ -46,10 +49,16 @@ for opt in $(getopt -n $ME -o $SHORTOPTS -l $LONGOPTS -u -- "$@"); do 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:-}" ] && [ $list -eq 0 ]; then +if [ "$mark_read" -eq 1 ]; then + PROCMAIL="$PROCMAIL DELIVER_READ=1" +fi + +DATE_R="$(date -R)" +FILTER="sed -rne ':b;s/^(Received|Date):/&/;tf;p;n;bb' -e ':f;iReceived: by resubmission script; $DATE_R' -e ':e;p;n;be'" +FILTER="$FILTER | /usr/bin/formail -I'X-Resubmitted: $DATE_R'" + +if [ -z "${files:-}" ] && [ $list -eq 0 ]; then eval $FILTER | exec $PROCMAIL else for f in $files; do