sax 0.1.0

Smart archiving and extracting utility
use std::{backtrace::BacktraceStatus, process::ExitCode};

use clap::Parser;
use owo_colors::OwoColorize;

use crate::cli::Cli;

mod cli;
mod extract;

fn main() -> ExitCode {
    let cli = Cli::parse();

    match cli.run() {
        Ok(_) => ExitCode::SUCCESS,
        Err(e) => {
            println!("{}: {}", "Something went wrong".red(), e);

            let bt = e.backtrace();
            if bt.status() == BacktraceStatus::Captured {
                eprintln!("\nBacktrace:\n{}", bt);
            }

            ExitCode::FAILURE
        }
    }
}