diff --git a/src/config_util.rs b/src/config_util.rs index b95dd52..8f66b7d 100644 --- a/src/config_util.rs +++ b/src/config_util.rs @@ -169,29 +169,27 @@ fn parse_oss_backupd_config_item(item: &json::JsonValue, root_oss_config_object: let mut backup_count = get_u32_value(item, "backup_count"); let mut encrypt_pubkey_file = get_string_value(item, "encrypt_pubkey_file"); let mut oss_config = parse_sub_oss_config(item); - if root_oss_config_object.is_some() { - if oss_config.is_some() { - let mut oc = oss_config.unwrap(); - let root_oc = root_oss_config_object.as_ref().unwrap(); - - if oc.endpoint.is_none() && root_oc.endpoint.is_some() { - oc.endpoint = root_oc.endpoint.clone() - } - if oc.access_key_id.is_none() && root_oc.access_key_id.is_some() { - oc.access_key_id = root_oc.access_key_id.clone() - } - if oc.access_key_secret.is_none() && root_oc.access_key_secret.is_some() { - oc.access_key_secret = root_oc.access_key_secret.clone(); - } - if oc.bucket.is_none() && root_oc.bucket.is_some() { - oc.bucket = root_oc.bucket.clone(); - } - if oc.path.is_none() && root_oc.path.is_some() { - oc.path = root_oc.path.clone(); - } - oss_config = Some(oc); - } else { - oss_config = root_oss_config_object.clone(); + if let Some(ref root_oc) = root_oss_config_object { + match oss_config { + Some(mut oc) => { + if oc.endpoint.is_none() && root_oc.endpoint.is_some() { + oc.endpoint = root_oc.endpoint.clone() + } + if oc.access_key_id.is_none() && root_oc.access_key_id.is_some() { + oc.access_key_id = root_oc.access_key_id.clone() + } + if oc.access_key_secret.is_none() && root_oc.access_key_secret.is_some() { + oc.access_key_secret = root_oc.access_key_secret.clone(); + } + if oc.bucket.is_none() && root_oc.bucket.is_some() { + oc.bucket = root_oc.bucket.clone(); + } + if oc.path.is_none() && root_oc.path.is_some() { + oc.path = root_oc.path.clone(); + } + oss_config = Some(oc); + }, + None => oss_config = root_oss_config_object.clone(), } } @@ -253,22 +251,21 @@ pub fn get_config_json(custom_oss_backupd_config: Option<&str>, verbose: bool) - } fn get_config_content(custom_oss_backupd_config: Option<&str>, verbose: bool) -> Option { - if custom_oss_backupd_config.is_some() { - let custom_oss_backupd_config_unrwaped = custom_oss_backupd_config.unwrap(); + if let Some(custom_oss_backupd_config_val) = custom_oss_backupd_config { if verbose { - print_message(MessageType::DEBUG, &format!("Read config from: {}", custom_oss_backupd_config_unrwaped)); + print_message(MessageType::DEBUG, &format!("Read config from: {}", custom_oss_backupd_config_val)); } - let custom_oss_backupd_config_path = Path::new(custom_oss_backupd_config_unrwaped); + let custom_oss_backupd_config_path = Path::new(custom_oss_backupd_config_val); if custom_oss_backupd_config_path.exists() { return match fs::read_to_string(custom_oss_backupd_config_path) { Err(e) => { - print_message(MessageType::ERROR, &format!("Read config file {} error: {}", custom_oss_backupd_config_unrwaped, e)); + print_message(MessageType::ERROR, &format!("Read config file {} error: {}", custom_oss_backupd_config_val, e)); None }, Ok(o) => Some(o), }; } else { - print_message(MessageType::ERROR, &format!("Custom config file not found: {}", custom_oss_backupd_config_unrwaped)); + print_message(MessageType::ERROR, &format!("Custom config file not found: {}", custom_oss_backupd_config_val)); return None; } } @@ -293,7 +290,7 @@ fn get_config_content(custom_oss_backupd_config: Option<&str>, verbose: bool) -> }, Ok(o) => o, }; - if home_dot_oss_backupd_config != "" { + if !home_dot_oss_backupd_config.is_empty() { let home_dot_oss_backupd_config_path = Path::new(home_dot_oss_backupd_config); if home_dot_oss_backupd_config_path.exists() { if verbose { @@ -331,7 +328,7 @@ fn get_user_home() -> XResult { None => Err(new_box_ioerror("Home dir not found!")), Some(home_dir_o) => match home_dir_o.to_str() { None => Err(new_box_ioerror("Home dir not found!")), - Some(home_dir_str) => Ok(home_dir_str.to_string()), + Some(home_dir_str) => Ok(home_dir_str.to_owned()), }, } }