Home

Awesome

Beholder

Clojars Project

The Clojure directory watcher from krell as a standalone library.

Beholder Logo

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.