:0
-* ORIGINAL_TO ?? ^[0-9]+@tickle\.madduck\.net$
-* ORIGINAL_TO ?? ^\/[0-9]+
+* ! DEST ?? .
+* ! TICKLE_DELIVERED ?? .
+* ORIGINAL_TO ?? ^.+@tickle\.madduck\.net$
+* ORIGINAL_TO ?? ^\/[^@]+
{
- TICKLEDIR=$BASE/.tickle.$MATCH
+ DELIVERY_TIME=04:20
+ STAMP
:0
- * ? test ! -d $TICKLEDIR/cur
- {
- LOG="tickle: received message outside tickle range: $MATCH$NL"
+ * MATCH ?? ^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$
+ { DELAY="@$MATCH" }
+
+ :0 E
+ * MATCH ?? ^[0-9]+h$
+ * MATCH ?? ^\/[^h]+
+ { DELAY="$DATE + $MATCH hours" }
+
+ JUST_DATE="`$BIN_DATE -d \"$DATE\" +%x`"
+
+ :0 E
+ * MATCH ?? ^[0-9]+m$
+ * MATCH ?? ^\/[^m]+
+ { DELAY="$JUST_DATE + $MATCH months $DELIVERY_TIME" }
+
+ :0 E
+ * MATCH ?? ^[0-9]+w$
+ * MATCH ?? ^\/[^w]+
+ { DELAY="$JUST_DATE + $MATCH weeks $DELIVERY_TIME" }
+
+ :0 E
+ * MATCH ?? ^[0-9]+d?$
+ * MATCH ?? ^\/[^d]+
+ { DELAY="$JUST_DATE + $MATCH days $DELIVERY_TIME" }
- :0
- $DISCARD
+ JUST_DATE
+ DELIVERY_TIME
+
+ :0 E
+ {
+ LOG="tickle: invalid date string: $MATCH$NL"
+ EXITCODE=69
+ HOST
}
- LOG="tickle: file message and tickle in $MATCH day(s)$NL"
+ DELAYED_QUEUE=$BASE/.store/
- :0
- $TICKLEDIR/
- TICKLEDIR
+ :0 fw
+ |$FORMAIL -i 'X-Tickle: yes'
+
+# :0
+# * ! STAMP ?? .
+# { STAMP=`$BIN_DATE +'%s (%c)' -d "$DELAY"` }
+#
+# :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)"
+# }
+#
+# :0 E
+# { LOG="tickle: stamping message $MSGID with $STAMP$NL" }
+#
+# :0 fw
+# |$FORMAIL -i "X-Tickle: $STAMP"
+#
+# :0
+# { DEST=$TICKLER_QUEUE }
}
+
+# vim:ft=procmail