From 64751b8d43fade7256db630b32fe1cb2c35b04fb Mon Sep 17 00:00:00 2001 From: Bo Maryniuk Date: Fri, 29 Nov 2024 21:21:35 +0100 Subject: [PATCH] Clarify config selector, throw a warning if specified wasn't found --- libsysinspect/src/cfg/mod.rs | 4 +++- src/main.rs | 2 +- sysinspect.conf | 2 -- sysminion/src/minion.rs | 5 +---- 4 files changed, 5 insertions(+), 8 deletions(-) diff --git a/libsysinspect/src/cfg/mod.rs b/libsysinspect/src/cfg/mod.rs index c5de2349..b839807b 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 c001a145..c750ebac 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 af17453b..f4c57d36 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 76852cda..50010517 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();