aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--worker/maildir/worker.go18
-rw-r--r--worker/watcher_enabled.go3
2 files changed, 8 insertions, 13 deletions
diff --git a/worker/maildir/worker.go b/worker/maildir/worker.go
index a8ed0b50..11bab4ea 100644
--- a/worker/maildir/worker.go
+++ b/worker/maildir/worker.go
@@ -16,7 +16,6 @@ import (
"sync"
"github.com/emersion/go-maildir"
- "github.com/fsnotify/fsnotify"
aercLib "git.sr.ht/~rjarry/aerc/lib"
"git.sr.ht/~rjarry/aerc/lib/iterator"
@@ -40,14 +39,14 @@ type Worker struct {
selected *maildir.Dir
selectedName string
worker *types.Worker
- watcher *fsnotify.Watcher
+ watcher types.FSWatcher
currentSortCriteria []*types.SortCriterion
maildirpp bool // whether to use Maildir++ directory layout
}
// NewWorker creates a new maildir worker with the provided worker.
func NewWorker(worker *types.Worker) (types.Backend, error) {
- watch, err := fsnotify.NewWatcher()
+ watch, err := handlers.NewWatcher()
if err != nil {
return nil, fmt.Errorf("could not create file system watcher: %w", err)
}
@@ -56,7 +55,7 @@ func NewWorker(worker *types.Worker) (types.Backend, error) {
// NewMaildirppWorker creates a new Maildir++ worker with the provided worker.
func NewMaildirppWorker(worker *types.Worker) (types.Backend, error) {
- watch, err := fsnotify.NewWatcher()
+ watch, err := handlers.NewWatcher()
if err != nil {
return nil, fmt.Errorf("could not create file system watcher: %w", err)
}
@@ -69,7 +68,7 @@ func (w *Worker) Run() {
select {
case action := <-w.worker.Actions:
w.handleAction(action)
- case ev := <-w.watcher.Events:
+ case ev := <-w.watcher.Events():
w.handleFSEvent(ev)
}
}
@@ -101,14 +100,7 @@ func (w *Worker) handleAction(action types.WorkerMessage) {
}
}
-func (w *Worker) handleFSEvent(ev fsnotify.Event) {
- // we only care about files being created, removed or renamed
- switch ev.Op {
- case fsnotify.Create, fsnotify.Remove, fsnotify.Rename:
- break
- default:
- return
- }
+func (w *Worker) handleFSEvent(ev *types.FSEvent) {
// if there's not a selected directory to rescan, ignore
if w.selected == nil {
return
diff --git a/worker/watcher_enabled.go b/worker/watcher_enabled.go
new file mode 100644
index 00000000..16333f43
--- /dev/null
+++ b/worker/watcher_enabled.go
@@ -0,0 +1,3 @@
+package worker
+
+import _ "git.sr.ht/~rjarry/aerc/worker/lib/watchers/linux"