QUERY='select * from messages where release_ts < strftime("%s", "now")'
-$SQLITE -column $DELAYED_QUEUE_DB "$QUERY" | while read msgid file ts; do
- file="$MAILDIR/$file"
- if [ ! -f "$file" ]; then
- echo "E: message $msgid not found in $file" >&2
- else
- $RESUBMIT "$file"
- echo "I: resubmitted $msgid"
- fi
+$SQLITE -column $DELAYED_QUEUE_DB "$QUERY" | while read msgid basefile ts; do
+
+ file="$MAILDIR/$basefile"
+ files="$file ${file}:2,"
+
+ basename="${file##*/}"
+ dirname="${file%/*}"
+ case "${dirname##*/}" in
+ cur)
+ files="$files ${file}:2,S"
+ file="${dirname%/cur}/new/$basename"
+ files="$files $file ${file}:2,"
+ ;;
+ new)
+ file="${dirname%/new}/cur/$basename"
+ files="$files ${file}:2, ${file}:2,S"
+ ;;
+ esac
+
+ found=0
+ for file in $files; do
+ if [ -f "$file" ]; then
+ $RESUBMIT "$file"
+ echo "I: resubmitted $msgid"
+ found=1
+ break
+ fi
+ done
+
$SQLITE $DELAYED_QUEUE_DB "delete from messages where msgid = '$msgid'"
+
+ if [ $found -eq 0 ]; then
+ echo "E: message $msgid not found in $basefile" >&2
+ fi
+
done
: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`)" }
+ { DELAY="@$MATCH" }
:0 E
* MATCH ?? ^[0-9]+h$
* MATCH ?? ^\/[^h]+
- { DATESTR="$DATE + $MATCH hours" }
+ { DELAY="$DATE + $MATCH hours" }
JUST_DATE="`$BIN_DATE -d \"$DATE\" +%x`"
:0 E
* MATCH ?? ^[0-9]+m$
* MATCH ?? ^\/[^m]+
- { DATESTR="$JUST_DATE + $MATCH months $DELIVERY_TIME" }
+ { DELAY="$JUST_DATE + $MATCH months $DELIVERY_TIME" }
:0 E
* MATCH ?? ^[0-9]+w$
* MATCH ?? ^\/[^w]+
- { DATESTR="$JUST_DATE + $MATCH weeks $DELIVERY_TIME" }
+ { DELAY="$JUST_DATE + $MATCH weeks $DELIVERY_TIME" }
:0 E
* MATCH ?? ^[0-9]+d?$
* MATCH ?? ^\/[^d]+
- { DATESTR="$JUST_DATE + $MATCH days $DELIVERY_TIME" }
+ { DELAY="$JUST_DATE + $MATCH days $DELIVERY_TIME" }
JUST_DATE
DELIVERY_TIME
HOST
}
- :0
- * ! STAMP ?? .
- { 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)"
- }
-
- :0 E
- { LOG="tickle: stamping message $MSGID with $STAMP$NL" }
+ DELAYED_QUEUE=$BASE/.store/
:0 fw
- |$FORMAIL -i "X-Tickle: $STAMP"
+ |$FORMAIL -i 'X-Tickle: yes'
- :0
- { DEST=$TICKLER_QUEUE }
+# :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