use clap::{Parser, Subcommand};
mod cmd;
#[derive(Parser)]
#[command(
name = "aaai",
about = "audit for asset integrity — folder diff auditor",
version,
)]
pub(crate) struct Cli {
#[command(subcommand)]
command: Commands,
}
#[derive(Subcommand)]
enum Commands {
Audit(cmd::audit::AuditArgs),
Snap(cmd::snap::SnapArgs),
Report(cmd::report::ReportArgs),
Check(cmd::check::CheckArgs),
History(cmd::history::HistoryArgs),
Config(cmd::config::ConfigArgs),
Dashboard(cmd::dashboard::DashboardArgs),
Watch(cmd::watch::WatchArgs),
Completions(cmd::completions::CompletionsArgs),
Diff(cmd::diff_cmd::DiffArgs),
Merge(cmd::merge::MergeArgs),
}
fn main() -> anyhow::Result<()> {
env_logger::Builder::from_env(
env_logger::Env::default().default_filter_or("warn")
).init();
let cli = Cli::parse();
match cli.command {
Commands::Audit(args) => cmd::audit::run(args),
Commands::Snap(args) => cmd::snap::run(args),
Commands::Report(args) => cmd::report::run(args),
Commands::Check(args) => cmd::check::run(args),
Commands::History(args) => cmd::history::run(args),
Commands::Config(args) => cmd::config::run(args),
Commands::Dashboard(args) => cmd::dashboard::run(args),
Commands::Watch(args) => cmd::watch::run(args),
Commands::Completions(args) => cmd::completions::run(args),
Commands::Diff(args) => cmd::diff_cmd::run(args),
Commands::Merge(args) => cmd::merge::run(args),
}
}
#[cfg(test)]
mod tests;