watchexec 8.2.0

Library to execute commands in response to file modifications
Documentation
use miette::{IntoDiagnostic, Result};
use watchexec::Watchexec;

#[tokio::main]
async fn main() -> Result<()> {
	let wx = Watchexec::new(|mut action| {
		// you don't HAVE to spawn jobs:
		// here, we just print out the events as they come in
		for event in action.events.iter() {
			eprintln!("{event:?}");
		}

		// quit when we get a signal
		if action.signals().next().is_some() {
			eprintln!("[Quitting...]");
			action.quit();
		}

		action
	})?;

	// start the engine
	let main = wx.main();

	// and watch all files in the current directory:
	wx.config.pathset(["."]);

	let _ = main.await.into_diagnostic()?;
	Ok(())
}