stt-cli 0.2.1

Speech to text Cli using Groq API and OpenAI API
// src/main.rs
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;

// --- Main Function ---
#[tokio::main]
async fn main() -> Result<()> {
    // Initialize tracing for logging
    my_tracing::initialize(my_tracing::TracingConfig::default())?;

    // Parse command line arguments
    let config = parse_args()?;
    info!("Starting application with config: {:?}", config);

    // Create and run the application
    let mut app = app::App::new(config).await?;
    let local = tokio::task::LocalSet::new();
    local.run_until(async {
        app.run().await
    }).await?;

    Ok(())
}

/// Parse command line arguments and return the application configuration
fn parse_args() -> Result<config::AppConfig> {
    config::AppConfig::parse().context("Failed to parse command line arguments")
}