2021-12-31 13:33:52 +01:00
|
|
|
use std::convert::Infallible;
|
2021-12-23 15:37:51 +01:00
|
|
|
|
|
|
|
use clap::ArgMatches;
|
|
|
|
use miette::Result;
|
2021-12-31 13:33:52 +01:00
|
|
|
use tracing::error;
|
|
|
|
use watchexec::{config::InitConfig, handler::SyncFnHandler, error::RuntimeError};
|
2021-12-23 15:37:51 +01:00
|
|
|
|
|
|
|
pub fn init(_args: &ArgMatches<'static>) -> Result<InitConfig> {
|
|
|
|
let mut config = InitConfig::default();
|
2021-12-31 13:33:52 +01:00
|
|
|
config.on_error(SyncFnHandler::from(|data| -> std::result::Result<(), Infallible> {
|
|
|
|
if let RuntimeError::IoError(_) = data {
|
|
|
|
// these are often spurious, so condemn them to -v only
|
|
|
|
error!("{}", data);
|
|
|
|
return Ok(());
|
|
|
|
}
|
|
|
|
|
|
|
|
if cfg!(debug_assertions) {
|
|
|
|
eprintln!("[[{:?}]]", data);
|
|
|
|
} else {
|
|
|
|
eprintln!("[[{}]]", data);
|
|
|
|
}
|
|
|
|
|
|
|
|
Ok(())
|
|
|
|
}));
|
|
|
|
|
2021-12-23 15:37:51 +01:00
|
|
|
Ok(config)
|
|
|
|
}
|