caeryn 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 caeryn::cli::handle_args(std::env::args().skip(1)) {
        Ok(caeryn::cli::StartupAction::Gui) => run_gui(),
        Ok(caeryn::cli::StartupAction::Handled) => Ok(()),
        Err(error) => {
            eprintln!("caeryn: {error}");
            if error.is_usage() {
                eprintln!("{}", caeryn::cli::short_usage());
            }
            process::exit(error.exit_code());
        }
    }
}

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

    eframe::run_native(
        "Caeryn",
        options,
        Box::new(|cc| Ok(Box::new(caeryn::app::CaerynApp::new(cc)))),
    )
}