1 stable release
1.0.0 | Apr 29, 2023 |
---|
#159 in #monitor
16KB
349 lines
Monzilla
An uncomplicated file monitoring tool. It runs a program then watches the files you specify for changes, restarting the program if the files change. You can also manually restart the program. If you need more power I suggest Watchman.
Installation
Install the command line tool with:
cargo install monzilla_rs
Then you can run it with something like the following:
monzilla -g 'scratch/*.fish' 'scratch/xyz.json5' -- scratch/forever.fish
Any time the files change the program will be killed and restarted.
Points of Interest
This tool shows how to do a variety of advanced things in Rust:
- How to use termios to capture CTRL+C and CTRL+R from the terminal
- Using crossbeam and
select
to wait on multiple channels - How to use the notify to watch for file changes with with debouncing of multiple changes at once.
- Using command-group to group child processes so you can terminate the entire tree not just the immediate child process.
Plus, all the good stuff found in my rust_cli_quickstart.
Dependencies
~4–11MB
~122K SLoC