When env variable is set, any config file will be ignored and the default settings will be used (#4594)
* do not panic when no config file found use defaults * formatting * implement env variable * ermove commented code * remove redundant comment * remove redundant space * simplify check logic * format * returns and messages * correct mistake
This commit is contained in:
parent
705e86eb4c
commit
a14ebefd24
1 changed files with 10 additions and 3 deletions
|
@ -13,8 +13,17 @@ use structs::{DatabaseConnection, PictrsConfig, PictrsImageMode, Settings};
|
||||||
static DEFAULT_CONFIG_FILE: &str = "config/config.hjson";
|
static DEFAULT_CONFIG_FILE: &str = "config/config.hjson";
|
||||||
|
|
||||||
pub static SETTINGS: Lazy<Settings> = Lazy::new(|| {
|
pub static SETTINGS: Lazy<Settings> = Lazy::new(|| {
|
||||||
Settings::init().expect("Failed to load settings file, see documentation (https://join-lemmy.org/docs/en/administration/configuration.html)")
|
if env::var("LEMMY_INITIALIZE_WITH_DEFAULT_SETTINGS").is_ok() {
|
||||||
|
println!(
|
||||||
|
"LEMMY_INITIALIZE_WITH_DEFAULT_SETTINGS was set, any configuration file has been ignored."
|
||||||
|
);
|
||||||
|
println!("Use with other environment variables to configure this instance further; e.g. LEMMY_DATABASE_URL.");
|
||||||
|
Settings::default()
|
||||||
|
} else {
|
||||||
|
Settings::init().expect("Failed to load settings file, see documentation (https://join-lemmy.org/docs/en/administration/configuration.html).")
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
static WEBFINGER_REGEX: Lazy<Regex> = Lazy::new(|| {
|
static WEBFINGER_REGEX: Lazy<Regex> = Lazy::new(|| {
|
||||||
Regex::new(&format!(
|
Regex::new(&format!(
|
||||||
"^acct:([a-zA-Z0-9_]{{3,}})@{}$",
|
"^acct:([a-zA-Z0-9_]{{3,}})@{}$",
|
||||||
|
@ -30,9 +39,7 @@ impl Settings {
|
||||||
/// `lemmy_db_schema/src/lib.rs::get_database_url_from_env()`
|
/// `lemmy_db_schema/src/lib.rs::get_database_url_from_env()`
|
||||||
/// Warning: Only call this once.
|
/// Warning: Only call this once.
|
||||||
pub(crate) fn init() -> Result<Self, LemmyError> {
|
pub(crate) fn init() -> Result<Self, LemmyError> {
|
||||||
// Read the config file
|
|
||||||
let config = from_str::<Settings>(&Self::read_config_file()?)?;
|
let config = from_str::<Settings>(&Self::read_config_file()?)?;
|
||||||
|
|
||||||
if config.hostname == "unset" {
|
if config.hostname == "unset" {
|
||||||
Err(anyhow!("Hostname variable is not set!").into())
|
Err(anyhow!("Hostname variable is not set!").into())
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in a new issue