mod app;
mod cli;
mod domain;
mod infra;
use anyhow::Result;
use clap::Parser;
use cli::Cli;
#[tokio::main]
async fn main() -> Result<()> {
let cli = Cli::parse();
let config_path = infra::Config::resolve_path(cli.config.as_deref());
let cfg = infra::Config::load(&config_path)?;
let app = app::App::init(cfg)?;
app.execute(cli.command).await
}