From b57cf5fbde0459d7ea99e9b6edacac8a95739626 Mon Sep 17 00:00:00 2001 From: Hatter Jiang Date: Tue, 5 May 2020 10:32:31 +0800 Subject: [PATCH] ref parse_keep_running_config --- src/main.rs | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/main.rs b/src/main.rs index c4f731a..37cd580 100644 --- a/src/main.rs +++ b/src/main.rs @@ -32,7 +32,19 @@ fn main() { panic::set_hook(Box::new(|panic_info| { print_error(&format!("Panic in running keeprunningd: {:?}", panic_info)); })); + let keep_running_config = match parse_keep_running_config() { + Some(c) => c, None => return, + }; + let keep_running_config: Arc = Arc::new(keep_running_config); + for check_cnt in 0.. { + print_info(&format!("Check index: {} @{:?}", check_cnt, Local::now())); + keep_runningd(keep_running_config.clone()); + thread::sleep(Duration::from_secs(keep_running_config.check_inverval_secs.unwrap_or(60 * 60))); + } +} + +fn parse_keep_running_config() -> Option { let config_file_opt = locate_file(&[ "keeprunningd.json".into(), "~/keeprunningd.json".into(), @@ -42,7 +54,7 @@ fn main() { let config_file = match config_file_opt { None => { print_error("Cannot find config file!"); - return; + return None; }, Some(config_file) => { print_info(&format!("Find config file: {:?}", &config_file)); @@ -53,14 +65,14 @@ fn main() { let config_file_content = match fs::read_to_string(&config_file) { Ok(c) => c, Err(err) => { print_error(&format!("Read config file {:?}, error: {}", &config_file, err)); - return; + return None; }, }; let keep_running_config: KeepRunningConfig = match serde_json::from_str(&config_file_content) { Ok(c) => c, Err(err) => { print_error(&format!("Parse config file: {:?}, error: {}", &config_file, err)); - return; + return None; }, }; @@ -69,13 +81,7 @@ fn main() { print_debug(&format!("Config: {}", json)); } } - - let keep_running_config: Arc = Arc::new(keep_running_config); - for check_cnt in 0.. { - print_info(&format!("Check index: {} @{:?}", check_cnt, Local::now())); - keep_runningd(keep_running_config.clone()); - thread::sleep(Duration::from_secs(keep_running_config.check_inverval_secs.unwrap_or(60 * 60))); - } + Some(keep_running_config) } fn keep_runningd(keep_running_config: Arc) {