mirror of
https://github.com/watchexec/watchexec.git
synced 2024-11-16 09:08:37 +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.
30 lines
616 B
Rust
30 lines
616 B
Rust
use std::time::Duration;
|
|
|
|
use tokio::time::sleep;
|
|
use watchexec::{
|
|
config::{InitConfigBuilder, RuntimeConfig},
|
|
Watchexec,
|
|
};
|
|
|
|
#[tokio::main]
|
|
async fn main() -> color_eyre::eyre::Result<()> {
|
|
tracing_subscriber::fmt::init();
|
|
color_eyre::install()?;
|
|
|
|
let mut init = InitConfigBuilder::default();
|
|
init.on_error(|err| async move {
|
|
eprintln!("Watchexec Runtime Error: {}", err);
|
|
Ok::<(), std::convert::Infallible>(())
|
|
});
|
|
|
|
let runtime = RuntimeConfig::default();
|
|
|
|
let wx = Watchexec::new(init.build()?, runtime)?;
|
|
wx.main();
|
|
|
|
// TODO: induce an error here
|
|
|
|
sleep(Duration::from_secs(1)).await;
|
|
|
|
Ok(())
|
|
}
|