mod command;
use anyhow::Result;
use clap::Parser;
use self::command::archive::ArchiveOpt;
use self::command::unarchive::UnarchiveOpt;
#[derive(Debug, Parser)]
#[command(
name = "uar",
about = "CLI Tool for un/archive multiple formats of compressed files",
author = "Esteban Borai <estebanborai@gmail.com> (https://github.com/EstebanBorai/unarchiver)",
next_line_help = true
)]
pub enum Command {
Archive(ArchiveOpt),
Unarchive(UnarchiveOpt),
}
#[derive(Debug, Parser)]
pub struct Cli {
#[command(subcommand)]
pub command: Command,
}
#[tokio::main]
async fn main() -> Result<()> {
let args = Cli::parse();
match args.command {
Command::Archive(opt) => opt.exec().await,
Command::Unarchive(opt) => opt.exec().await,
}
}