Beholder
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.
Usage
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
.
License
Copyright © 2021 Nextjournal
Distributed under the EPL-1.0 License.