X-Git-Url: https://git.madduck.net/etc/mailfilter.git/blobdiff_plain/f1e2a8d4676f834f1eb06cc9ca66a8998e03aabf..4f5a58ca8242ff79558199fda4985b9e9673da99:/bin/resubmit

diff --git a/bin/resubmit b/bin/resubmit
index c51244b..62d9720 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,8 +49,14 @@ for opt in $(getopt -n $ME -o $SHORTOPTS -l $LONGOPTS -u -- "$@"); do
 done
 
 PROCMAIL=$HOME/.etc/mailfilter/procmail/procmailrc
+
+if [ "$mark_read" -eq 1 ]; then
+  PROCMAIL="$PROCMAIL DELIVER_READ=1"
+fi
+
 # execute the date -R only during the eval, not immediately
-FILTER='/usr/bin/formail -I"X-Resubmitted: $(date -R)"'
+FILTER="sed -rne ':b;s/^Received:/&/;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