From a8527f484364994eed2ecb7b87eb593e1d7d4681 Mon Sep 17 00:00:00 2001 From: rasul Date: Wed, 30 Oct 2019 16:01:38 -0500 Subject: [PATCH] error handling fixup also read config from user config directory --- src/main.rs | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/main.rs b/src/main.rs index 86d6edf..882a4df 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,6 @@ extern crate chrono; extern crate colored; +extern crate dirs; #[macro_use] extern crate log; extern crate serde; @@ -13,6 +14,10 @@ mod logger; mod proc; mod result; +use std::path::PathBuf; + +use dirs::config_dir; + use apps::Apps; use proc::Proc; use result::Result; @@ -23,7 +28,15 @@ fn main() { std::process::exit(1); } - match startup() { + let apps_file: PathBuf = match config_dir() { + Some(mut d) => { + d.push("sup.toml"); + d + } + None => PathBuf::from("sup.toml"), + }; + + match startup(apps_file) { Ok(p) => { info!("shutting down"); for mut proc in p { @@ -37,10 +50,9 @@ fn main() { }; } -fn startup() -> Result> { - let apps = Apps::load("sup.toml")?; +fn startup(apps_file: PathBuf) -> Result> { + let apps = Apps::load(apps_file)?; let (procs, holds) = apps.start(); let procs = apps.run(procs, holds)?; - Ok(procs) }