summary refs log tree commit diff stats
path: root/worker/worker.go
diff options
context:
space:
mode:
authorBen Burwell <ben@benburwell.com>2019-07-11 09:44:51 -0400
committerDrew DeVault <sir@cmpwn.com>2019-07-12 11:09:50 -0400
commit1b8b6e218c7a70cb61c5449a204e38738b7bd945 (patch)
tree505495696c83b407b4a9f3379b1d8d1050e970fa /worker/worker.go
parentd7cd35e72b81644774e5f1ab44ff8645e31aa510 (diff)
downloadaerc-1b8b6e218c7a70cb61c5449a204e38738b7bd945.tar.gz
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.
Diffstat (limited to 'worker/worker.go')
-rw-r--r--worker/worker.go3
1 files changed, 3 insertions, 0 deletions
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)
 	}