From 3e96aaa793e6bccc89006d55b0b6f49ac56907ec Mon Sep 17 00:00:00 2001 From: Hiltjo Posthuma Date: Thu, 30 Jul 2015 16:15:20 +0200 Subject: sfeed_maildir: initial version, needs more work --- procmailrc.example | 17 +++++++++++++++++ sfeed_maildir | 21 +++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 procmailrc.example create mode 100755 sfeed_maildir diff --git a/procmailrc.example b/procmailrc.example new file mode 100644 index 0000000..5f0e517 --- /dev/null +++ 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 new file mode 100755 index 0000000..099bc13 --- /dev/null +++ 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 -- cgit v1.2.3