Fix overriding config vars with underscore from environment

This commit is contained in:
Felix Ableitner 2019-12-28 12:11:06 +01:00
parent 10da3f2554
commit f18ebed740
2 changed files with 5 additions and 2 deletions

2
README.md vendored
View file

@ -231,7 +231,7 @@ into your local `config.hjson` file.
Additionally, you can override any config files with environment variables. These have the same name as the config
options, and are prefixed with `LEMMY_`. For example, you can override the `database.password` with
`LEMMY_DATABASE_PASSWORD=my_password`.
`LEMMY__DATABASE__POOL_SIZE=10`.
An additional option `LEMMY_DATABASE_URL` is available, which can be used with a PostgreSQL connection string like
`postgres://lemmy:password@lemmy_db:5432/lemmy`, passing all connection details at once.

View file

@ -70,7 +70,10 @@ impl Settings {
// Add in settings from the environment (with a prefix of LEMMY)
// Eg.. `LEMMY_DEBUG=1 ./target/app` would set the `debug` key
s.merge(Environment::with_prefix("LEMMY").separator("_"))?;
// Note: we need to use double underscore here, because otherwise variables containing
// underscore cant be set from environmnet.
// https://github.com/mehcode/config-rs/issues/73
s.merge(Environment::with_prefix("LEMMY").separator("__"))?;
return s.try_into();
}