rgd 1.3.1

Installed game detection utility for Linux
mod cli;
mod data;
mod handlers;
mod logging;
mod utils;

use clap::Parser;
use color_eyre::Result;

use crate::{cli::{Cli, Command}, handlers::HandleSubcommand, logging::init_logging};

fn main() -> Result<()> {
    color_eyre::install()?;

    let _log_guard = init_logging()?;
    tracing::info!("Version {}", env!("CARGO_PKG_VERSION"));

    tracing::trace!("Parsing args");
    let args = Cli::parse();

    tracing::trace!("Args: {:?}", args);
    let res = match args.command {
        Command::List(cmd) => cmd.handle(),
        Command::Get(cmd) => cmd.handle(),
    };

    res.inspect_err(|e| {
        tracing::error!("{e}");
        let mut source = e.source();
        while let Some(err) = source {
            source = err.source();
            tracing::error!("-> {err}")
        }
    })
}