mod cli;
mod cmd;
mod error;
use clap::Parser;
use cli::{Cli, Commands};
use error::CliError;
fn main() {
let cli = Cli::parse();
match run(cli) {
Ok(code) => std::process::exit(code),
Err(err) => {
eprintln!("error: {err}");
std::process::exit(err.exit_code());
}
}
}
fn run(cli: Cli) -> Result<i32, CliError> {
match cli.command {
Commands::Check { policy, input } => cmd::check::run(&policy, &input),
Commands::Policy { command } => cmd::policy::run(command).map(|()| 0),
Commands::Audit { command } => cmd::audit::run(command).map(|()| 0),
Commands::Trust { command } => cmd::trust::run(command).map(|()| 0),
}
}