From d50f8b3d0d94df174229c7c0e00753d57fcb9707 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Sat, 28 May 2016 23:03:04 +0200 Subject: [PATCH 1/2] Fix: Test the RTP itself as well This fixes the problem that the user sometimes passes the configuration via the commandline. In this case, the "rtp" variable itself is the configuration file path. With this fix applied, we check this value before generating the variants and trying them. --- libimagrt/src/configuration.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/libimagrt/src/configuration.rs b/libimagrt/src/configuration.rs index c3cb9735..a2ee1fed 100644 --- a/libimagrt/src/configuration.rs +++ b/libimagrt/src/configuration.rs @@ -143,6 +143,7 @@ fn fetch_config(rtp: &PathBuf) -> Result { }; vec![ + vec![rtp.clone()], gen_vars(rtp.clone(), variants.clone(), &modifier), env::var("HOME").map(|home| gen_vars(PathBuf::from(home), variants.clone(), &modifier)) From 180dfbf0b13a6286d7d9e0c348bb52d6633f4fd2 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Sat, 28 May 2016 23:04:10 +0200 Subject: [PATCH 2/2] Fix: Pass the confguration path as parameter for Configuration::new() If there is none, fall back to the RTP. --- libimagrt/src/runtime.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/libimagrt/src/runtime.rs b/libimagrt/src/runtime.rs index e693feff..85567b1d 100644 --- a/libimagrt/src/runtime.rs +++ b/libimagrt/src/runtime.rs @@ -70,7 +70,14 @@ impl<'a> Runtime<'a> { spath }, PathBuf::from); - let cfg = match Configuration::new(&rtp) { + let configpath = matches.value_of("config") + .map_or_else(|| { + let mut spath = rtp.clone(); + spath.push("store"); + spath + }, PathBuf::from); + + let cfg = match Configuration::new(&configpath) { Err(e) => if e.err_type() != ConfigErrorKind::NoConfigFileFound { return Err(RuntimeErrorKind::Instantiate.into_error_with_cause(Box::new(e))); } else {