From 1b8b6e218c7a70cb61c5449a204e38738b7bd945 Mon Sep 17 00:00:00 2001 From: Ben Burwell Date: Thu, 11 Jul 2019 09:44:51 -0400 Subject: Add maildir backend worker Add the initial implementation of a backend for Maildir accounts. Much of the functionality required is implemented in the go-message and go-maildir libraries, so we use them as much as possible. The maildir worker hooks into a new maildir:// URL scheme in the accounts.conf file which points to a container of several maildir directories. From there, the OpenDirectory, FetchDirectoryContents, etc messages work on subdirectories. This is implemented as a Container struct which handles mapping between the symbolic email folder names and UIDs to the concrete directories and file names. --- worker/worker.go | 3 +++ 1 file changed, 3 insertions(+) (limited to 'worker/worker.go') diff --git a/worker/worker.go b/worker/worker.go index 7db7be5..dd14a23 100644 --- a/worker/worker.go +++ b/worker/worker.go @@ -2,6 +2,7 @@ package worker import ( "git.sr.ht/~sircmpwn/aerc/worker/imap" + "git.sr.ht/~sircmpwn/aerc/worker/maildir" "git.sr.ht/~sircmpwn/aerc/worker/types" "fmt" @@ -27,6 +28,8 @@ func NewWorker(source string, logger *log.Logger) (*types.Worker, error) { fallthrough case "imaps": worker.Backend = imap.NewIMAPWorker(worker) + case "maildir": + worker.Backend = maildir.NewWorker(worker) default: return nil, fmt.Errorf("Unknown backend %s", u.Scheme) } -- cgit v1.2.3