summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2024-06-05 15:18:34 +0800
committerGitHub <noreply@github.com>2024-06-05 15:18:34 +0800
commit4b27378443bc74c31cca26435b99a7550a40d2f7 (patch)
tree6bcae790a8a9b08917d38f64edeb607c58a6d47b
parentd4e043e5bf1a939ac2269d53a5ae6250101f9f41 (diff)
downloadaichat-4b27378443bc74c31cca26435b99a7550a40d2f7.tar.gz
feat: custom more path to file/dirs with environment variables (#565)
-rw-r--r--src/config/mod.rs34
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> {