mod cli;
mod client;
mod commands;
use anyhow::Result;
use clap::Parser;
use cli::{Cli, Commands, ProvidersCommands};
use client::RouterctlClient;
#[tokio::main]
async fn main() -> Result<()> {
let args = Cli::parse();
let client = RouterctlClient::new(&args.socket, &args.http_url);
match args.command {
Commands::Status => {
commands::status::run_status(&client, args.json).await?;
}
Commands::Providers(p_args) => match p_args.command {
ProvidersCommands::List => {
commands::providers::run_list(&client, args.json).await?;
}
ProvidersCommands::Test { provider_id } => {
commands::providers::run_test(&client, provider_id, args.json).await?;
}
},
Commands::Models => {
commands::models::run_models(&client, args.json).await?;
}
Commands::Default(d_args) => {
commands::default_model::run_default(&d_args, args.json)?;
}
Commands::Route(r_args) => {
commands::route::run_route(&client, r_args, args.json).await?;
}
Commands::Test(t_args) => {
commands::test::run_benchmark(&client, t_args, args.json).await?;
}
Commands::Info(i_args) => {
commands::info::run_info(&client, i_args, args.json).await?;
}
Commands::Setup(s_args) => {
commands::setup::run_setup(&s_args).await?;
}
}
Ok(())
}