]> Untitled Git - lemmy.git/commitdiff
Fixing config_file env to use defaults instead (since its required). (#970)
authorDessalines <dessalines@users.noreply.github.com>
Thu, 23 Jul 2020 00:17:41 +0000 (20:17 -0400)
committerGitHub <noreply@github.com>
Thu, 23 Jul 2020 00:17:41 +0000 (20:17 -0400)
* Fixing config_file env to use defaults instead (since its required). Fixes #764

* Changing the read / write to the custom config file one

* Adding a config note.

docs/src/administration_configuration.md
server/lemmy_utils/src/settings.rs

index c2aef3f7f910484e3ed335b1ee885ba2cd7829b0..ce9dc2ba835cf600abcf01607378766ff02b59fc 100644 (file)
@@ -5,7 +5,7 @@ The configuration is based on the file
 This file also contains documentation for all the available options. To override the defaults, you
 can copy the options you want to change into your local `config.hjson` file.
 
-To use a different `config.hjson` location than the current directory, set the environment variable `LEMMY_CONFIG_LOCATION`.
+To use a different `config.hjson` location than the current directory, set the environment variable `LEMMY_CONFIG_LOCATION`. Make sure you copy the `defaults.hjson` if you do this, otherwise you will be missing settings.
 
 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
index 097063b6a55bcdc168737b5f94237cdd053a7525..1029147792e3827da461d27e10c40535a69bd7d1 100644 (file)
@@ -81,9 +81,9 @@ impl Settings {
   fn init() -> Result<Self, ConfigError> {
     let mut s = Config::new();
 
-    s.merge(File::with_name(CONFIG_FILE_DEFAULTS))?;
+    s.merge(File::with_name(&Self::get_config_defaults_location()))?;
 
-    s.merge(File::with_name(&Self::get_config_location()).required(false))?;
+    s.merge(File::with_name(CONFIG_FILE).required(false))?;
 
     // Add in settings from the environment (with a prefix of LEMMY)
     // Eg.. `LEMMY_DEBUG=1 ./target/app` would set the `debug` key
@@ -115,16 +115,16 @@ impl Settings {
     format!("{}/api/v1", self.hostname)
   }
 
-  pub fn get_config_location() -> String {
-    env::var("LEMMY_CONFIG_LOCATION").unwrap_or_else(|_| CONFIG_FILE.to_string())
+  pub fn get_config_defaults_location() -> String {
+    env::var("LEMMY_CONFIG_LOCATION").unwrap_or_else(|_| CONFIG_FILE_DEFAULTS.to_string())
   }
 
   pub fn read_config_file() -> Result<String, Error> {
-    fs::read_to_string(Self::get_config_location())
+    fs::read_to_string(CONFIG_FILE)
   }
 
   pub fn save_config_file(data: &str) -> Result<String, Error> {
-    fs::write(Self::get_config_location(), data)?;
+    fs::write(CONFIG_FILE, data)?;
 
     // Reload the new settings
     // From https://stackoverflow.com/questions/29654927/how-do-i-assign-a-string-to-a-mutable-static-variable/47181804#47181804