diff options
| author | sigoden <sigoden@gmail.com> | 2024-06-05 15:18:34 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-05 15:18:34 +0800 |
| commit | 4b27378443bc74c31cca26435b99a7550a40d2f7 (patch) | |
| tree | 6bcae790a8a9b08917d38f64edeb607c58a6d47b | |
| parent | d4e043e5bf1a939ac2269d53a5ae6250101f9f41 (diff) | |
| download | aichat-4b27378443bc74c31cca26435b99a7550a40d2f7.tar.gz | |
feat: custom more path to file/dirs with environment variables (#565)
| -rw-r--r-- | src/config/mod.rs | 34 |
1 files changed, 24 insertions, 10 deletions
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<PathBuf> { - 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<PathBuf> { - 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<PathBuf> { - 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<PathBuf> { - 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<PathBuf> { - 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<PathBuf> { - 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<PathBuf> { |
