From 4b27378443bc74c31cca26435b99a7550a40d2f7 Mon Sep 17 00:00:00 2001 From: sigoden Date: Wed, 5 Jun 2024 15:18:34 +0800 Subject: feat: custom more path to file/dirs with environment variables (#565) --- src/config/mod.rs | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/config/mod.rs b/src/config/mod.rs index fc2df17..4003a63 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -287,31 +287,45 @@ impl Config { } pub fn config_file() -> Result { - Self::local_path(CONFIG_FILE_NAME) + match env::var(get_env_name("config_file")) { + Ok(value) => Ok(PathBuf::from(value)), + Err(_) => Self::local_path(CONFIG_FILE_NAME), + } } pub fn roles_file() -> Result { - let env_name = get_env_name("roles_file"); - env::var(env_name).map_or_else( - |_| Self::local_path(ROLES_FILE_NAME), - |value| Ok(PathBuf::from(value)), - ) + match env::var(get_env_name("roles_file")) { + Ok(value) => Ok(PathBuf::from(value)), + Err(_) => Self::local_path(ROLES_FILE_NAME), + } } pub fn messages_file() -> Result { - Self::local_path(MESSAGES_FILE_NAME) + match env::var(get_env_name("messages_file")) { + Ok(value) => Ok(PathBuf::from(value)), + Err(_) => Self::local_path(MESSAGES_FILE_NAME), + } } pub fn sessions_dir() -> Result { - Self::local_path(SESSIONS_DIR_NAME) + match env::var(get_env_name("sessions_dir")) { + Ok(value) => Ok(PathBuf::from(value)), + Err(_) => Self::local_path(SESSIONS_DIR_NAME), + } } pub fn rags_dir() -> Result { - Self::local_path(RAGS_DIR_NAME) + match env::var(get_env_name("rags_dir")) { + Ok(value) => Ok(PathBuf::from(value)), + Err(_) => Self::local_path(RAGS_DIR_NAME), + } } pub fn functions_dir() -> Result { - Self::local_path(FUNCTIONS_DIR_NAME) + match env::var(get_env_name("functions_dir")) { + Ok(value) => Ok(PathBuf::from(value)), + Err(_) => Self::local_path(FUNCTIONS_DIR_NAME), + } } pub fn session_file(name: &str) -> Result { -- cgit v1.2.3