diff options
author | Kirill Chibisov <contact@kchibisov.com> | 2023-05-13 23:13:42 +0300 |
---|---|---|
committer | Robin Jarry <robin@jarry.cc> | 2023-08-05 00:07:21 +0200 |
commit | 2788078187c21e1713cbb86368ea4d91b2823bae (patch) | |
tree | ed2f6ce815e10baa368329501837409a4fab99b3 /worker | |
parent | 4a8ae421690b915db9b2917b9e9df9d66cc910c6 (diff) | |
download | aerc-2788078187c21e1713cbb86368ea4d91b2823bae.tar.gz |
notmuch: add option to provide path for account
Add the "maildir-account-path" account configuration option to select
the account relative to the "maildir-store" to have traditional
maildir one tab per account behavior with notmuch.
Signed-off-by: Kirill Chibisov <contact@kchibisov.com>
Acked-by: Robin Jarry <robin@jarry.cc>
Tested-by: Bence Ferdinandy <bence@ferdinandy.com>
Diffstat (limited to 'worker')
-rw-r--r-- | worker/notmuch/eventhandlers.go | 4 | ||||
-rw-r--r-- | worker/notmuch/worker.go | 8 |
2 files changed, 10 insertions, 2 deletions
diff --git a/worker/notmuch/eventhandlers.go b/worker/notmuch/eventhandlers.go index ca92d7eb..a6ab7668 100644 --- a/worker/notmuch/eventhandlers.go +++ b/worker/notmuch/eventhandlers.go @@ -5,6 +5,7 @@ package notmuch import ( "fmt" + "path/filepath" "strconv" "git.sr.ht/~rjarry/aerc/worker/types" @@ -27,7 +28,8 @@ func (w *worker) handleUpdateDirCounts() error { return err } for name := range folders { - query := fmt.Sprintf("folder:%s", strconv.Quote(name)) + folder := filepath.Join(w.maildirAccountPath, name) + query := fmt.Sprintf("folder:%s", strconv.Quote(folder)) w.w.PostMessage(&types.DirectoryInfo{ Info: w.getDirectoryInfo(name, query), }, nil) diff --git a/worker/notmuch/worker.go b/worker/notmuch/worker.go index cf58d987..85f813da 100644 --- a/worker/notmuch/worker.go +++ b/worker/notmuch/worker.go @@ -43,6 +43,7 @@ type worker struct { queryMapOrder []string nameQueryMap map[string]string store *lib.MaildirStore + maildirAccountPath string db *notmuch.DB setupErr error currentSortCriteria []*types.SortCriterion @@ -225,6 +226,10 @@ func (w *worker) handleConfigure(msg *types.Configure) error { if err != nil { return err } + + w.maildirAccountPath = msg.Config.Params["maildir-account-path"] + + path = filepath.Join(path, w.maildirAccountPath) store, err := lib.NewMaildirStore(path, false) if err != nil { return fmt.Errorf("Cannot initialize maildir store: %w", err) @@ -319,7 +324,8 @@ func (w *worker) handleOpenDirectory(msg *types.OpenDirectory) error { folders, _ := w.store.FolderMap() dir, ok := folders[msg.Directory] if ok { - q = fmt.Sprintf("folder:%s", strconv.Quote(msg.Directory)) + folder := filepath.Join(w.maildirAccountPath, msg.Directory) + q = fmt.Sprintf("folder:%s", strconv.Quote(folder)) if err := w.processNewMaildirFiles(string(dir)); err != nil { return err } |