ref parse_keep_running_config

This commit is contained in:
2020-05-05 10:32:31 +08:00
parent 237037e169
commit b57cf5fbde

View File

@@ -32,7 +32,19 @@ fn main() {
panic::set_hook(Box::new(|panic_info| { panic::set_hook(Box::new(|panic_info| {
print_error(&format!("Panic in running keeprunningd: {:?}", 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<KeepRunningConfig> = 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<KeepRunningConfig> {
let config_file_opt = locate_file(&[ let config_file_opt = locate_file(&[
"keeprunningd.json".into(), "keeprunningd.json".into(),
"~/keeprunningd.json".into(), "~/keeprunningd.json".into(),
@@ -42,7 +54,7 @@ fn main() {
let config_file = match config_file_opt { let config_file = match config_file_opt {
None => { None => {
print_error("Cannot find config file!"); print_error("Cannot find config file!");
return; return None;
}, },
Some(config_file) => { Some(config_file) => {
print_info(&format!("Find config file: {:?}", &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) { let config_file_content = match fs::read_to_string(&config_file) {
Ok(c) => c, Err(err) => { Ok(c) => c, Err(err) => {
print_error(&format!("Read config file {:?}, error: {}", &config_file, 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) { let keep_running_config: KeepRunningConfig = match serde_json::from_str(&config_file_content) {
Ok(c) => c, Err(err) => { Ok(c) => c, Err(err) => {
print_error(&format!("Parse config file: {:?}, error: {}", &config_file, 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)); print_debug(&format!("Config: {}", json));
} }
} }
Some(keep_running_config)
let keep_running_config: Arc<KeepRunningConfig> = 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 keep_runningd(keep_running_config: Arc<KeepRunningConfig>) { fn keep_runningd(keep_running_config: Arc<KeepRunningConfig>) {