commit 3e96aaa793e6bccc89006d55b0b6f49ac56907ec
parent e88ade983fca58fc5b5592be4ad7734ae0bb121f
Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Thu, 30 Jul 2015 16:15:20 +0200
sfeed_maildir: initial version, needs more work
Diffstat:
2 files changed, 38 insertions(+), 0 deletions(-)
diff --git a/procmailrc.example b/procmailrc.example
@@ -0,0 +1,17 @@
+# Example for use with sfeed_maildir.
+# The header X-Feedname is used to split into separate maildirs. It is assumes
+# this name is sane.
+
+MAILDIR="$HOME/feeds/"
+
+:0
+* ^X-Feedname: \/.*
+{
+ FEED="$MATCH"
+
+ :0 Wh: "msgid_$FEED.lock"
+ | formail -D 1024000 ".cache/msgid_$FEED.cache"
+
+ :0
+ "$FEED"/
+}
diff --git a/sfeed_maildir b/sfeed_maildir
@@ -0,0 +1,21 @@
+#!/bin/sh
+# Uses procmail to format mbox to maildir, see procmailrc.example.
+# Copy procmailrc.example to $procmailconfig (see below).
+# Depends on: procmail, formail, sfeed_mbox.
+
+maildir="$HOME/feeds"
+feedsdir="$HOME/.sfeed/feeds"
+procmailconfig="$HOME/.sfeed/procmailrc"
+
+# message-id cache to prevent duplicates.
+mkdir -p "${maildir}/.cache"
+
+find "${feedsdir}" -type f -exec printf '%s\n' {} \; | while read -r d; do
+ (name=$(basename "${d}")
+ mkdir -p "${maildir}/${name}/cur"
+ mkdir -p "${maildir}/${name}/new"
+ mkdir -p "${maildir}/${name}/tmp"
+ printf 'Mailbox %s\n' "${name}"
+ sfeed_mbox "${d}" | formail -s procmail "${procmailconfig}") &
+done
+wait