From: martin f. krafft Date: Tue, 28 Aug 2007 12:14:24 +0000 (+0200) Subject: make tickle processing more robust X-Git-Url: https://git.madduck.net/etc/mailfilter.git/commitdiff_plain/97551d10e98e6d47b588f665041085bd548edc97?ds=inline make tickle processing more robust --- diff --git a/procmail/tickle b/procmail/tickle index 8ad5ac9..672358d 100644 --- a/procmail/tickle +++ b/procmail/tickle @@ -2,30 +2,38 @@ * ORIGINAL_TO ?? ^.+@tickle\.madduck\.net$ * ORIGINAL_TO ?? ^\/[^@]+ { + BIN_DATE=/bin/date + DELIVERY_TIME=04:20 STAMP + :0 * MATCH ?? ^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$ - { STAMP="$MATCH (`/bin/date -d @$MATCH +%c`)" } + { STAMP="$MATCH (`$BIN_DATE -d @$MATCH +%c`)" } + + :0 E + * MATCH ?? ^[0-9]+h$ + * MATCH ?? ^\/[^h]+ + { DATESTR="$DATE + $MATCH hours" } + + JUST_DATE="`$BIN_DATE -d \"$DATE\" +%x`" :0 E * MATCH ?? ^[0-9]+m$ * MATCH ?? ^\/[^m]+ - { DATESTR="$DATE + $MATCH months 00:00" } + { DATESTR="$JUST_DATE + $MATCH months $DELIVERY_TIME" } :0 E * MATCH ?? ^[0-9]+w$ * MATCH ?? ^\/[^w]+ - { DATESTR="$DATE + $MATCH weeks 00:00" } + { DATESTR="$JUST_DATE + $MATCH weeks $DELIVERY_TIME" } :0 E * MATCH ?? ^[0-9]+d?$ * MATCH ?? ^\/[^d]+ - { DATESTR="$DATE + $MATCH days 00:00" } + { DATESTR="$JUST_DATE + $MATCH days $DELIVERY_TIME" } - :0 E - * MATCH ?? ^[0-9]+h$ - * MATCH ?? ^\/[^h]+ - { DATESTR="$DATE + $MATCH hours" } + JUST_DATE + DELIVERY_TIME :0 E { @@ -36,13 +44,23 @@ :0 * ! STAMP ?? . - { STAMP=`/bin/date +'%s (%c)' -d "$DATESTR"` } + { STAMP=`$BIN_DATE +'%s (%c)' -d "$DATESTR"` } + + :0 + * ! STAMP ?? ^[0-9]+ \([A-Za-z ]+ [0-9 :]+\)$ + { + LOG="tickle: error creating timestamp ($STAMP), using \$now$NL" + STAMP="`$BIN_DATE +%s` (ERROR: original stamp '$STAMP' invalid)" + } - LOG="tickle: stamping message $MSGID with $STAMP$NL" + :0 E + { LOG="tickle: stamping message $MSGID with $STAMP$NL" } :0 fw |$FORMAIL -i "X-Tickle: $STAMP" :0 $BASE/.tickler/ + + BIN_DATE }