caery 0.1.1

KnottDynamics-styled Linux desktop media converter for audio and video.
Documentation
use eframe::egui;
use std::process;

fn main() -> eframe::Result<()> {
    match caery::cli::handle_args(std::env::args().skip(1)) {
        Ok(caery::cli::StartupAction::Gui) => run_gui(),
        Ok(caery::cli::StartupAction::Handled) => Ok(()),
        Err(error) => {
            eprintln!("caery: {error}");
            if error.is_usage() {
                eprintln!("{}", caery::cli::short_usage());
            }
            process::exit(error.exit_code());
        }
    }
}

fn run_gui() -> eframe::Result<()> {
    let options = eframe::NativeOptions {
        viewport: egui::ViewportBuilder::default()
            .with_title("Caery")
            .with_inner_size([1060.0, 720.0])
            .with_min_inner_size([680.0, 500.0]),
        ..Default::default()
    };

    eframe::run_native(
        "Caery",
        options,
        Box::new(|cc| Ok(Box::new(caery::app::CaeryApp::new(cc)))),
    )
}