diff --git a/.gitignore b/.gitignore index 4ebc5a92..7d848115 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ **/target **/log/*.log* +**/local.*.toml +**/local.toml Cargo.lock workdir diff --git a/drust/config/default.toml b/drust/config/default.toml index 1cbcbfea..6f119629 100644 --- a/drust/config/default.toml +++ b/drust/config/default.toml @@ -1,4 +1,10 @@ -[database] -db_name = "drust" -db_user = "drust" -db_pass = "DrU__#3T" +[app] +#theme = "Basic" +#theme = "Chassis" +theme = "Inception" +#theme = "Bootsier" +#theme = "Bulmix" +language = "es-ES" + +[log] +tracing = "Info,pagetop=Debug,sqlx::query=Warn" diff --git a/drust/config/local.toml b/drust/config/local.toml deleted file mode 100644 index 343add5c..00000000 --- a/drust/config/local.toml +++ /dev/null @@ -1,13 +0,0 @@ -[app] -#theme = "Basic" -#theme = "Chassis" -theme = "Inception" -#theme = "Bootsier" -#theme = "Bulmix" -language = "es-ES" - -[log] -tracing = "Info,pagetop=Debug,sqlx::query=Warn" - -[dev] -#static_files = "../pagetop/static" diff --git a/pagetop/src/config.rs b/pagetop/src/config.rs index fa2b9afd..44c8466e 100644 --- a/pagetop/src/config.rs +++ b/pagetop/src/config.rs @@ -121,7 +121,7 @@ mod value; use crate::config::data::ConfigData; use crate::config::file::File; -use crate::LazyStatic; +use crate::{concat_string, LazyStatic}; use serde::Deserialize; @@ -132,6 +132,8 @@ const CONFIG_DIR: &str = "config"; /// Valores originales de la configuración en forma de pares `clave = valor` recogidos de los /// archivos de configuración. + +#[rustfmt::skip] pub static CONFIG: LazyStatic = LazyStatic::new(|| { // Modo de ejecución según la variable de entorno PAGETOP_RUN_MODE. Por defecto 'default'. let run_mode = env::var("PAGETOP_RUN_MODE").unwrap_or_else(|_| "default".into()); @@ -139,17 +141,28 @@ pub static CONFIG: LazyStatic = LazyStatic::new(|| { // Inicializa los ajustes. let mut settings = ConfigData::default(); - // Combina los archivos de configuración y asigna el modo de ejecución. + // Combina los archivos (opcionales) de configuración y asigna el modo de ejecución. settings - // Primero añade la configuración común a todos los entornos. Opcional. - .merge(File::with_name(&format!("{}/{}.toml", CONFIG_DIR, "common")).required(false)) - .unwrap() - // Combina la configuración específica del entorno. Por defecto 'default.toml'. Opcional. - .merge(File::with_name(&format!("{}/{}.toml", CONFIG_DIR, run_mode)).required(false)) - .unwrap() - // Combina la configuración local. Este archivo no debería incluirse en git. Opcional. - .merge(File::with_name(&format!("{}/{}.toml", CONFIG_DIR, "local")).required(false)) - .unwrap() + // Primero añade la configuración común a todos los entornos. Por defecto 'common.toml'. + .merge( + File::with_name(&concat_string!(CONFIG_DIR, "/common.toml")) + .required(false) + ).unwrap() + // Añade la configuración específica del entorno. Por defecto 'default.toml'. + .merge( + File::with_name(&concat_string!(CONFIG_DIR, "/", run_mode, ".toml")) + .required(false) + ).unwrap() + // Añade la configuración local reservada del entorno. Por defecto 'default.local.toml'. + .merge( + File::with_name(&concat_string!(CONFIG_DIR, "/", run_mode, ".local.toml")) + .required(false), + ).unwrap() + // Añade la configuración local reservada general. Por defecto 'local.toml'. + .merge( + File::with_name(&concat_string!(CONFIG_DIR, "/local.toml")) + .required(false) + ).unwrap() // Salvaguarda el modo de ejecución. .set("app.run_mode", run_mode) .unwrap();