mod app;
mod audio;
mod audio_state;
mod config;
mod hotkey_service;
mod my_tracing;
mod platform;
mod providers;
mod shutdown_handler;
mod transcription;
mod pipeline;
use anyhow::{Context, Result};
use tracing::info;
#[tokio::main]
async fn main() -> Result<()> {
my_tracing::initialize(my_tracing::TracingConfig::default())?;
let config = parse_args()?;
info!("Starting application with config: {:?}", config);
let mut app = app::App::new(config).await?;
let local = tokio::task::LocalSet::new();
local.run_until(async {
app.run().await
}).await?;
Ok(())
}
fn parse_args() -> Result<config::AppConfig> {
config::AppConfig::parse().context("Failed to parse command line arguments")
}