diff options
author | Ben Burwell <ben@benburwell.com> | 2019-07-11 09:44:51 -0400 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2019-07-12 11:09:50 -0400 |
commit | 1b8b6e218c7a70cb61c5449a204e38738b7bd945 (patch) | |
tree | 505495696c83b407b4a9f3379b1d8d1050e970fa /worker/worker.go | |
parent | d7cd35e72b81644774e5f1ab44ff8645e31aa510 (diff) | |
download | aerc-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.go | 3 |
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) } |