mod check_portability;
mod check_shlibs;
mod checksum;
mod ctfconvert;
mod digest;
mod distinfo;
mod fetch;
mod symlinks;
const MKTOOL_DEFAULT_THREADS: usize = 4;
use clap::{Parser, Subcommand};
#[derive(Debug, Parser)]
#[command(author, version, about, long_about = None)]
pub struct Cli {
#[arg(short, long)]
verbose: bool,
#[command(subcommand)]
command: Commands,
}
#[derive(Debug, Subcommand)]
#[command(rename_all = "lower")]
enum Commands {
#[command(name = "check-portability")]
CheckPortability(check_portability::Cmd),
#[command(name = "check-shlibs")]
CheckShlibs(check_shlibs::CheckShlibs),
CheckSum(checksum::CheckSum),
CTFConvert(ctfconvert::CTFConvert),
Digest(digest::DigestCmd),
DistInfo(distinfo::DistInfo),
Fetch(fetch::Fetch),
Symlinks(symlinks::Symlinks),
}
fn main() -> Result<(), Box<dyn std::error::Error>> {
let cli = Cli::parse();
let rv = match &cli.command {
Commands::CheckPortability(cmd) => cmd.run()?,
Commands::CheckShlibs(cmd) => cmd.run()?,
Commands::CheckSum(cmd) => cmd.run()?,
Commands::CTFConvert(cmd) => cmd.run()?,
Commands::Digest(cmd) => cmd.run()?,
Commands::DistInfo(cmd) => cmd.run()?,
Commands::Fetch(cmd) => cmd.run()?,
Commands::Symlinks(cmd) => cmd.run()?,
};
std::process::exit(rv);
}