let opts = Opts::from_args();
- ServerConfig::read(opts.config_filename.as_ref().map(String::as_str))?;
+ ServerConfig::read(opts.config_filename.as_ref().map(String::as_str),
+ ResolveContext::ForServerReal)?;
std::env::set_var("ROCKET_CLI_COLORS", "off");
"config file", "etc", DEFAULT_CONFIG_LEAFNAME,
".")
});
- ServerConfig::read(Some(&config_filename))
+ ServerConfig::read(Some(&config_filename), default())
.context("read config file")?;
Ok::<_,AE>((otter::config::config(), config_filename))
})().map_err(|e| ArgumentParseError(
impl ServerConfig {
#[throws(StartupError)]
- pub fn read(config_filename: Option<&str>) {
+ pub fn read(config_filename: Option<&str>, rctx: ResolveContext) {
let config_filename = config_filename.map(|s| s.to_string())
.unwrap_or_else(
|| format!("{}/{}", DEFAULT_CONFIG_DIR, DEFAULT_CONFIG_LEAFNAME)
File::open(&config_filename).with_context(||config_filename.to_string())?
.read_to_string(&mut buf)?;
let spec: ServerConfigSpec = toml_de::from_str(&buf)?;
- let whole = spec.resolve(ResolveContext::ForServerReal)?;
+ let whole = spec.resolve(rctx)?;
set_config(whole);
}