use std::process::ExitCode; fn main() -> ExitCode { let args: Vec = std::env::args().collect(); let env = |k: &str| std::env::var(k).ok(); let opts = match knotless_triage::parse_args(&args, &env) { Ok(opts) => opts, Err(usage) => { eprintln!("{usage}"); return ExitCode::from(2); } }; // KNOTLESS_COMMIT is the commit the image was built from, set as it // runs (Dockerfile), so the binary is the same at every commit. let (version, commit) = ( env!("CARGO_PKG_VERSION"), std::env::var("KNOTLESS_COMMIT").ok(), ); knotless::telemetry::init("knotless-triage", version, commit.as_deref()); let ctx = knotless::env::Ctx::new(knotless::env::Env::from_process()); let runtime = tokio::runtime::Runtime::new().expect("a runtime builds"); match runtime.block_on(knotless_triage::run(opts, ctx)) { Ok(()) => ExitCode::SUCCESS, Err(err) => { eprintln!("knotless-triage: {err:#}"); ExitCode::FAILURE } } }