summaryrefslogtreecommitdiffstats
path: root/src/config/mod.rs
diff options
context:
space:
mode:
authorsigoden <sigoden@gmail.com>2025-01-19 08:44:22 +0800
committerGitHub <noreply@github.com>2025-01-19 08:44:22 +0800
commite61aaae0e24eb0dbe25384f310d599f624a08126 (patch)
tree2bae358602c1f229a84c19d765950434b408f4f5 /src/config/mod.rs
parent42eedf9e38525c4526f2c3eb2ad67e5bd9b87dbc (diff)
downloadaichat-e61aaae0e24eb0dbe25384f310d599f624a08126.tar.gz
refactor: don't throw model/functions related error in info mode (#1101)
Diffstat (limited to 'src/config/mod.rs')
-rw-r--r--src/config/mod.rs27
1 files changed, 17 insertions, 10 deletions
diff --git a/src/config/mod.rs b/src/config/mod.rs
index d6e710a..e2f9048 100644
--- a/src/config/mod.rs
+++ b/src/config/mod.rs
@@ -237,7 +237,7 @@ impl Default for Config {
pub type GlobalConfig = Arc<RwLock<Config>>;
impl Config {
- pub fn init(working_mode: WorkingMode) -> Result<Self> {
+ pub fn init(working_mode: WorkingMode, info_flag: bool) -> Result<Self> {
let config_path = Self::config_file();
let mut config = if !config_path.exists() {
match env::var(get_env_name("platform")) {
@@ -254,19 +254,26 @@ impl Config {
};
config.working_mode = working_mode;
+ config.info_flag = info_flag;
- config.load_envs();
+ let setup = |config: &mut Self| -> Result<()> {
+ config.load_envs();
- if let Some(wrap) = config.wrap.clone() {
- config.set_wrap(&wrap)?;
- }
-
- config.load_functions()?;
+ if let Some(wrap) = config.wrap.clone() {
+ config.set_wrap(&wrap)?;
+ }
- config.setup_model()?;
- config.setup_document_loaders();
- config.setup_user_agent();
+ config.load_functions()?;
+ config.setup_model()?;
+ config.setup_document_loaders();
+ config.setup_user_agent();
+ Ok(())
+ };
+ let ret = setup(&mut config);
+ if !info_flag {
+ ret?;
+ }
Ok(config)
}