delta

A library for detecting file changes

https://github.com/kryoxide/delta

Latest on Hackage:0.2.1.2@rev:2

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.

LGPL-3.0-only licensed by Christof Schramm
Maintained by [email protected]

Delta is a library for detecting file changes in any given directory. The package is written using the sodium FRP library but it also provides a callback based API.

File changes on OS X are based on the FSEvents API that is also used by TimeMachine. On other operating systems the library currently uses recursive descents in directories. I will include inotify for Linux. If someone would like to have a non-polling based API for windows or BSD, I would really like it if anyone would contribute.

The project also contains an executable, delta-run, which allows you to run arbitrary shell commands when a file in a directory (recursively) changes.

$> delta-run --help
Usage: delta-run [-i|--interval INTERVAL] [-v|--verbose] FILE CMD
Available options:
-h,--help                Show this help text
-i,--interval INTERVAL   Run at most every n seconds
-v,--verbose             Print extra output
FILE                     The directory that is watched
CMD                      The command to run

For example you could use delta-run to rebuild your project everytime the source changes like this:

delta-run ./src "cabal build"