anoia service :events method behaves as iterator

This commit is contained in:
Daniel Barlow
2023-09-12 20:42:42 +01:00
parent 7904c6bfe9
commit 8f97c5bf3c
2 changed files with 13 additions and 6 deletions

View File

@@ -33,6 +33,12 @@
unknown
(error (.. "can't read " pathname " of kind \"" unknown.mode "\""))))
(fn events [self]
(coroutine.wrap
#(while true
(while (not (self:ready?)) (self:wait))
(coroutine.yield self)
(self:wait))))
(fn open [directory]
(let [watcher (watch-fsevents directory)
@@ -44,6 +50,7 @@
:output (fn [_ filename]
(read-value (.. directory "/" filename)))
:close #(watcher:close)
: events
}))
{ : open }