aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGalen Abell <galen@galenabell.com>2020-02-25 16:35:57 -0500
committerDrew DeVault <sir@cmpwn.com>2020-02-25 16:36:37 -0500
commit5ba1569734be25f5f696b85c79788392a12bb0a3 (patch)
treedd43b3dcd32a42a902e5988432d1e30b7e01ef7b
parent2fcd77f101003b65590f6ab103d0b633b219587b (diff)
downloadaerc-5ba1569734be25f5f696b85c79788392a12bb0a3.tar.gz
Ensure new directory exists before unwatching old
-rw-r--r--worker/maildir/worker.go11
1 files changed, 6 insertions, 5 deletions
diff --git a/worker/maildir/worker.go b/worker/maildir/worker.go
index 1df4e09c..3c15f2ce 100644
--- a/worker/maildir/worker.go
+++ b/worker/maildir/worker.go
@@ -236,6 +236,12 @@ func (w *Worker) handleListDirectories(msg *types.ListDirectories) error {
func (w *Worker) handleOpenDirectory(msg *types.OpenDirectory) error {
w.worker.Logger.Printf("opening %s", msg.Directory)
+ // open the directory
+ dir, err := w.c.OpenDirectory(msg.Directory)
+ if err != nil {
+ return err
+ }
+
// remove existing watch path
if w.selected != nil {
prevDir := filepath.Join(string(*w.selected), "new")
@@ -244,11 +250,6 @@ func (w *Worker) handleOpenDirectory(msg *types.OpenDirectory) error {
}
}
- // open the directory
- dir, err := w.c.OpenDirectory(msg.Directory)
- if err != nil {
- return err
- }
w.selected = &dir
w.selectedName = msg.Directory