aboutsummaryrefslogtreecommitdiffstats
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 7db7be5e..dd14a239 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)
}