The Clojure directory watcher from krell as a standalone library.
Built using the Java library directory-watcher. From its README:
A directory watcher utility for JDK 8+ that aims to provide accurate and efficient recursive watching for Linux, macOS and Windows. In particular, this library provides a JNA-based WatchService for Mac OS X to replace the default polling-based JDK implementation.
The core directory-watcher library is designed to have minimal dependencies; currently it only depends on slf4j-api (for internal logging, which can be disabled by passing a NOPLogger in the builder) and jna (for the macOS watcher implementation).
Initial development by David Nolen.
Pass a callback function and paths to watch.
(require '[nextjournal.beholder :as beholder])
(def watcher
(beholder/watch prn "src"))
(beholder/stop watcher)Whenever a file changes, your callback function will be invoked with a
map with :type and :path keys. Possible values for :type are
:create, :modify, :delete or :overflow.
Copyright © 2021 Nextjournal
Distributed under the EPL-1.0 License.
