use clap::Parser;
use seal::cli::{Cli, Commands};
use std::process;
fn main() {
let cli = Cli::parse();
if cli.verbose {
tracing_subscriber::fmt()
.with_max_level(tracing::Level::DEBUG)
.init();
} else {
tracing_subscriber::fmt()
.with_max_level(tracing::Level::INFO)
.init();
}
let result = match &cli.command {
Commands::Create(cmd) => seal::cli::create_command(cmd),
};
if let Err(e) = result {
eprintln!("Error: {}", e);
let exit_code = if e.to_string().contains("kubeseal") {
3 } else if e.to_string().contains("kubeconfig") || e.to_string().contains("context") {
2 } else if e.to_string().contains("Invalid") || e.to_string().contains("validation") {
1 } else {
99 };
process::exit(exit_code);
}
}