summaryrefslogtreecommitdiffstats
path: root/libimagrt
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2016-07-24 18:06:01 +0200
committerMatthias Beyer <mail@beyermatthias.de>2016-07-24 19:30:04 +0200
commit3eedab52064011f219d718bb0fff71ed41e7e1a3 (patch)
treefb3ae91b8c777191bfdcca9367eaa69fc887975f /libimagrt
parent6f0670003be5958644d0853018452352f27ca97b (diff)
Add Runtime functionality to patch in-memory-configuration-file-contents on loading application
Diffstat (limited to 'libimagrt')
-rw-r--r--libimagrt/src/runtime.rs27
1 files changed, 26 insertions, 1 deletions
diff --git a/libimagrt/src/runtime.rs b/libimagrt/src/runtime.rs
index e5b31898..63678672 100644
--- a/libimagrt/src/runtime.rs
+++ b/libimagrt/src/runtime.rs
@@ -88,7 +88,16 @@ impl<'a> Runtime<'a> {
None
},
- Ok(cfg) => Some(cfg),
+ Ok(mut cfg) => {
+ if let Err(e) = cfg.override_config(get_override_specs(&matches)) {
+ error!("Could not apply config overrides");
+ trace_error(&e);
+
+ // TODO: continue question (interactive)
+ }
+
+ Some(cfg)
+ }
};
let store_config = match cfg {
@@ -291,3 +300,19 @@ impl<'a> Runtime<'a> {
}
}
+fn get_override_specs(matches: &ArgMatches) -> Vec<String> {
+ matches
+ .values_of("config-override")
+ .map(|values| {
+ values
+ .filter(|s| {
+ let b = s.contains("=");
+ if !b { warn!("override '{}' does not contain '=' - will be ignored!", s); }
+ b
+ })
+ .map(String::from)
+ .collect()
+ })
+ .unwrap_or(vec![])
+}
+