mirror of
https://github.com/watchexec/watchexec.git
synced 2024-11-16 00:58:31 +01:00
d7d549a4c8
It's not exactly a builder, and this lets us flatten all the options at the top level instead of requiring the user to dig deeper into the action, fs, etc modules' WorkingData structs. |
||
---|---|---|
.. | ||
examples | ||
src | ||
tests | ||
.rustfmt.toml | ||
Cargo.toml | ||
CITATION.cff | ||
README.md |
Watchexec library
The library which powers Watchexec CLI and other tools.
- API documentation.
- Licensed under Apache 2.0.
- Minimum Supported Rust Version: 1.43.0.
Quick start
use watchexec::{
config::ConfigBuilder,
error::Result,
pathop::PathOp,
run::{
ExecHandler,
Handler,
watch,
},
};
fn main() -> Result<()> {
let config = ConfigBuilder::default()
.clear_screen(true)
.run_initially(true)
.paths(vec![ "/path/to/dir".into() ])
.cmd(vec![ "date; seq 1 10".into() ])
.build()?;
let handler = MyHandler(ExecHandler::new(options)?);
watch(&handler)
}
struct MyHandler(ExecHandler);
impl Handler for MyHandler {
fn args(&self) -> Config {
self.0.args()
}
fn on_manual(&self) -> Result<bool> {
println!("Running manually!");
self.0.on_manual()
}
fn on_update(&self, ops: &[PathOp]) -> Result<bool> {
println!("Running manually {:?}", ops);
self.0.on_update(ops)
}
}