5 unstable releases
0.3.0 | May 17, 2024 |
---|---|
0.2.1 | Mar 30, 2024 |
0.2.0 | Sep 19, 2023 |
0.1.1 | Jun 24, 2023 |
0.1.0 | Jun 24, 2023 |
#12 in #trigger
178 downloads per month
15KB
251 lines
async-watcher
This is a small library that uses notify to implement a file watcher that is debounced.
The debouncing helps ensure you don't get too many events on a single file leading to extra work.
The original use case of this was to watch a directory and rebuild when there are changes.
Without debouncing, a single file could trigger multiple rebuilds.
Instead, async-watcher
can be used to trigger events after a specific time threshold.
Notify takes care of all of the work, but the debouncing traits weren't async.
async-watcher
leverages async-trait to provide an async interface for creating watchers.
See the examples for usage.
cli
Included is a command line application that can be used to execute a command when notified of changes.
The files to watch are specified with a glob pattern as the first argument.
Subsequent arguments are the command to run and its arguments.
The program is exposed as a nix flake package called awatch
.
example usage:
awatch './{crates,Cargo.toml,Cargo.lock}' echo "crates modified"
Dependencies
~4–12MB
~139K SLoC