summaryrefslogtreecommitdiffstats
path: root/src/main.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/main.rs
parent42eedf9e38525c4526f2c3eb2ad67e5bd9b87dbc (diff)
downloadaichat-e61aaae0e24eb0dbe25384f310d599f624a08126.tar.gz
refactor: don't throw model/functions related error in info mode (#1101)
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs19
1 files changed, 11 insertions, 8 deletions
diff --git a/src/main.rs b/src/main.rs
index a7b5198..e30efde 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -45,8 +45,15 @@ async fn main() -> Result<()> {
} else {
WorkingMode::Cmd
};
+ let info_flag = cli.info
+ || cli.list_models
+ || cli.list_roles
+ || cli.list_agents
+ || cli.list_rags
+ || cli.list_macros
+ || cli.list_sessions;
setup_logger(working_mode.is_serve())?;
- let config = Arc::new(RwLock::new(Config::init(working_mode)?));
+ let config = Arc::new(RwLock::new(Config::init(working_mode, info_flag)?));
if let Err(err) = run(config, cli, text).await {
render_error(err);
std::process::exit(1);
@@ -57,13 +64,6 @@ async fn main() -> Result<()> {
async fn run(config: GlobalConfig, cli: Cli, text: Option<String>) -> Result<()> {
let abort_signal = create_abort_signal();
- if let Some(addr) = cli.serve {
- return serve::run(config, addr).await;
- }
- if cli.info {
- config.write().info_flag = true;
- }
-
if cli.list_models {
for model in list_models(&config.read(), ModelType::Chat) {
println!("{}", model.id());
@@ -153,6 +153,9 @@ async fn run(config: GlobalConfig, cli: Cli, text: Option<String>) -> Result<()>
println!("{}", info);
return Ok(());
}
+ if let Some(addr) = cli.serve {
+ return serve::run(config, addr).await;
+ }
let is_repl = config.read().working_mode.is_repl();
if cli.rebuild_rag {
Config::rebuild_rag(&config, abort_signal.clone()).await?;