Remove ConfigReadError because ::toml_query::error::Error is now linked in

This commit is contained in:
Matthias Beyer 2017-09-09 22:15:18 +02:00
parent a015b07f6a
commit 307165d1b2
2 changed files with 57 additions and 74 deletions

View file

@ -48,11 +48,6 @@ error_chain! {
display("IO Error: Could not open logfile") display("IO Error: Could not open logfile")
} }
ConfigReadError {
description("Error while reading the configuration")
display("Error while reading the configuration")
}
ConfigTypeError { ConfigTypeError {
description("Error while reading the configuration: Type Error") description("Error while reading the configuration: Type Error")
display("Error while reading the configuration: Type Error") display("Error while reading the configuration: Type Error")

View file

@ -195,15 +195,12 @@ fn aggregate_global_loglevel(matches: &ArgMatches, config: Option<&Configuration
-> Result<LogLevel> -> Result<LogLevel>
{ {
match config { match config {
Some(cfg) => match cfg Some(cfg) => match cfg.read("imag.logging.level") {
.read("imag.logging.level") Ok(Some(&Value::String(ref s))) => match_log_level_str(s),
.chain_err(|| EK::ConfigReadError) Ok(Some(_)) => Err(RE::from_kind(EK::ConfigTypeError)),
{ Ok(None) => Err(RE::from_kind(EK::GlobalLogLevelConfigMissing)),
Ok(Some(&Value::String(ref s))) => match_log_level_str(s), Err(e) => Err(e).map_err(From::from),
Ok(Some(_)) => Err(RE::from_kind(EK::ConfigTypeError)), },
Ok(None) => Err(RE::from_kind(EK::GlobalLogLevelConfigMissing)),
Err(e) => Err(e)
},
None => { None => {
if matches.is_present(Runtime::arg_debugging_name()) { if matches.is_present(Runtime::arg_debugging_name()) {
return Ok(LogLevel::Debug) return Ok(LogLevel::Debug)
@ -253,15 +250,12 @@ fn aggregate_global_destinations(matches: &ArgMatches, config: Option<&Configura
{ {
match config { match config {
Some(cfg) => match cfg Some(cfg) => match cfg.read("imag.logging.destinations") {
.read("imag.logging.destinations") Ok(Some(&Value::Array(ref a))) => translate_destinations(a),
.chain_err(|| EK::ConfigReadError) Ok(Some(_)) => Err(RE::from_kind(EK::ConfigTypeError)),
{ Ok(None) => Err(RE::from_kind(EK::GlobalDestinationConfigMissing)),
Ok(Some(&Value::Array(ref a))) => translate_destinations(a), Err(e) => Err(e).map_err(From::from),
Ok(Some(_)) => Err(RE::from_kind(EK::ConfigTypeError)), },
Ok(None) => Err(RE::from_kind(EK::GlobalDestinationConfigMissing)),
Err(e) => Err(e)
},
None => { None => {
if let Some(values) = matches.value_of(Runtime::arg_logdest_name()) { if let Some(values) = matches.value_of(Runtime::arg_logdest_name()) {
// parse logdest specification from commandline // parse logdest specification from commandline
@ -291,15 +285,12 @@ fn aggregate_global_format(
-> Result<String> -> Result<String>
{ {
match config { match config {
Some(cfg) => match cfg Some(cfg) => match cfg.read(read_str) {
.read(read_str) Ok(Some(&Value::String(ref s))) => Ok(s.clone()),
.chain_err(|| EK::ConfigReadError) Ok(Some(_)) => Err(RE::from_kind(EK::ConfigTypeError)),
{ Ok(None) => Err(RE::from_kind(error_kind_if_missing)),
Ok(Some(&Value::String(ref s))) => Ok(s.clone()), Err(e) => Err(e).map_err(From::from),
Ok(Some(_)) => Err(RE::from_kind(EK::ConfigTypeError)), },
Ok(None) => Err(RE::from_kind(error_kind_if_missing)),
Err(e) => Err(e)
},
None => match matches.value_of(cli_match_name).map(String::from) { None => match matches.value_of(cli_match_name).map(String::from) {
Some(s) => Ok(s), Some(s) => Ok(s),
None => Err(RE::from_kind(error_kind_if_missing)) None => Err(RE::from_kind(error_kind_if_missing))
@ -361,55 +352,52 @@ fn aggregate_module_settings(_matches: &ArgMatches, config: Option<&Configuratio
-> Result<BTreeMap<ModuleName, ModuleSettings>> -> Result<BTreeMap<ModuleName, ModuleSettings>>
{ {
match config { match config {
Some(cfg) => match cfg Some(cfg) => match cfg.read("imag.logging.modules") {
.read("imag.logging.modules") Ok(Some(&Value::Table(ref t))) => {
.chain_err(|| EK::ConfigReadError) // translate the module settings from the table `t`
{ let mut settings = BTreeMap::new();
Ok(Some(&Value::Table(ref t))) => {
// translate the module settings from the table `t`
let mut settings = BTreeMap::new();
for (module_name, v) in t { for (module_name, v) in t {
let destinations = try!(match v.read("destinations") { let destinations = try!(match v.read("destinations") {
Ok(Some(&Value::Array(ref a))) => translate_destinations(a).map(Some), Ok(Some(&Value::Array(ref a))) => translate_destinations(a).map(Some),
Ok(None) => Ok(None), Ok(None) => Ok(None),
Ok(Some(_)) => Err(RE::from_kind(EK::ConfigTypeError)), Ok(Some(_)) => Err(RE::from_kind(EK::ConfigTypeError)),
Err(e) => Err(e).map_err(From::from), Err(e) => Err(e).map_err(From::from),
}); });
let level = try!(match v.read("level") { let level = try!(match v.read("level") {
Ok(Some(&Value::String(ref s))) => match_log_level_str(s).map(Some), Ok(Some(&Value::String(ref s))) => match_log_level_str(s).map(Some),
Ok(None) => Ok(None), Ok(None) => Ok(None),
Ok(Some(_)) => Err(RE::from_kind(EK::ConfigTypeError)), Ok(Some(_)) => Err(RE::from_kind(EK::ConfigTypeError)),
Err(e) => Err(e).map_err(From::from), Err(e) => Err(e).map_err(From::from),
}); });
let enabled = try!(match v.read("enabled") { let enabled = try!(match v.read("enabled") {
Ok(Some(&Value::Boolean(b))) => Ok(b), Ok(Some(&Value::Boolean(b))) => Ok(b),
Ok(None) => Ok(false), Ok(None) => Ok(false),
Ok(Some(_)) => Err(RE::from_kind(EK::ConfigTypeError)), Ok(Some(_)) => Err(RE::from_kind(EK::ConfigTypeError)),
Err(e) => Err(e).map_err(From::from), Err(e) => Err(e).map_err(From::from),
}); });
let module_settings = ModuleSettings { let module_settings = ModuleSettings {
enabled: enabled, enabled: enabled,
level: level, level: level,
destinations: destinations, destinations: destinations,
}; };
// We don't care whether there was a value, we override it. // We don't care whether there was a value, we override it.
let _ = settings.insert(module_name.to_owned(), module_settings); let _ = settings.insert(module_name.to_owned(), module_settings);
} }
Ok(settings) Ok(settings)
},
Ok(Some(_)) => Err(RE::from_kind(EK::ConfigTypeError)),
Ok(None) => {
// No modules configured. This is okay!
Ok(BTreeMap::new())
},
Err(e) => Err(e),
}, },
Ok(Some(_)) => Err(RE::from_kind(EK::ConfigTypeError)),
Ok(None) => {
// No modules configured. This is okay!
Ok(BTreeMap::new())
},
Err(e) => Err(e).map_err(From::from),
},
None => { None => {
write!(stderr(), "No Configuration.").ok(); write!(stderr(), "No Configuration.").ok();
write!(stderr(), "cannot find module-settings for logging.").ok(); write!(stderr(), "cannot find module-settings for logging.").ok();