fn main() { let args: Vec = std::env::args().collect(); let opts = match knotless_run::parse_args(&args) { Ok(opts) => opts, Err(usage) => { eprintln!("{usage}"); std::process::exit(2); } }; // KNOTLESS_COMMIT is the commit the image was built from (Dockerfile). let (version, commit) = (env!("CARGO_PKG_VERSION"), option_env!("KNOTLESS_COMMIT")); knotless::telemetry::init("knotless-run", version, commit); let ctx = knotless::env::Ctx::new(knotless::env::Env::from_process()); let runtime = tokio::runtime::Runtime::new().expect("a runtime builds"); if let Err(err) = runtime.block_on(knotless_run::run(opts, ctx)) { let f = knotless::telemetry::Fields { error: Some(format!("{err:#}")), ..Default::default() }; knotless::telemetry::note(knotless::telemetry::Level::ERROR, "knotless-run failed", &f); eprintln!("knotless-run: {err:#}"); std::process::exit(1); } }