diff --git a/libsysinspect/src/cfg/mod.rs b/libsysinspect/src/cfg/mod.rs index c5de234..b839807 100644 --- a/libsysinspect/src/cfg/mod.rs +++ b/libsysinspect/src/cfg/mod.rs @@ -13,13 +13,15 @@ pub const APP_DOTCONF: &str = ".sysinspect"; pub const APP_HOME: &str = "/etc/sysinspect"; /// Select app conf -pub fn select_config(p: Option) -> Result { +pub fn select_config(p: Option<&str>) -> Result { // Override path from options if let Some(ovrp) = p { let ovrp = PathBuf::from(ovrp); if ovrp.exists() { return Ok(ovrp); } + + log::warn!("Preferred config at {} does not exist, falling back", ovrp.to_str().unwrap_or_default()); } // Current diff --git a/src/main.rs b/src/main.rs index c001a14..c750eba 100644 --- a/src/main.rs +++ b/src/main.rs @@ -50,7 +50,7 @@ fn set_logger(p: &ArgMatches) { /// Get configuration of the master fn get_cfg(p: &ArgMatches) -> Result { - MasterConfig::new(select_config(p.get_one::("config").cloned())?) + MasterConfig::new(select_config(p.get_one::<&str>("config").cloned())?) } fn main() { diff --git a/sysinspect.conf b/sysinspect.conf index af17453..f4c57d3 100644 --- a/sysinspect.conf +++ b/sysinspect.conf @@ -26,7 +26,5 @@ config: minion: # Root directory where minion keeps all data. # Default: /etc/sysinspect — same as for master - root: /etc/sysinspect - id.path: relative master.ip: 192.168.2.31 master.port: 4200 diff --git a/sysminion/src/minion.rs b/sysminion/src/minion.rs index 76852cd..5001051 100644 --- a/sysminion/src/minion.rs +++ b/sysminion/src/minion.rs @@ -57,10 +57,7 @@ pub struct SysMinion { impl SysMinion { pub async fn new(cfp: &str, fingerprint: Option) -> Result, SysinspectError> { - let mut cfp = PathBuf::from(cfp); - if !cfp.exists() { - cfp = cfg::select_config(None)?; - } + let cfp = cfg::select_config(Some(cfp))?; let cfg = MinionConfig::new(cfp)?; let (rstm, wstm) = TcpStream::connect(cfg.master()).await.unwrap().into_split();