use crate::{app::app_main::App, cli::Cli, logger::init_logger};
use clap::Parser;
pub mod app;
pub mod cli;
pub mod client;
pub mod logger;
pub mod server;
pub mod ui;
#[tokio::main]
async fn main() -> color_eyre::Result<()> {
let result = startup().await;
if let Err(err) = &result {
log::error!("{}", err);
} else {
log::info!("Application stopped without an error");
}
result
}
async fn startup() -> color_eyre::Result<()> {
color_eyre::install()?;
let args = Cli::parse(); let mut terminal = ratatui::init();
init_logger(&args)?;
log::info!("Application started");
let result = App::new(args.clone())?.run(&args, &mut terminal).await;
ratatui::restore(); result
}