use axum::{ routing::get, Router, }; #[tokio::main] async fn main() { let mut args = std::env::args(); let _name = args.next().unwrap(); let mut listen = String::from("[::]:3000"); loop { let arg = if let Some(arg) = args.next() { arg } else { break; }; match arg.as_str() { "--listen" => { listen = args.next().unwrap(); } unknown => { println!("unknown option: {}", unknown); std::process::exit(1) } } } let app = Router::new() .route("/", get(route_index)) .route("/probe", get(route_probe)); let listener = tokio::net::TcpListener::bind(listen).await.unwrap(); println!("Server listening on: http://{}", listener.local_addr().unwrap()); println!("Probe with: http://{}/probe", listener.local_addr().unwrap()); axum::serve(listener, app).await.unwrap(); } async fn route_index() -> String { return String::from("Prometheus exporter for checking XMPP server availability"); } async fn route_probe() -> Result { let mut out = String::new(); out.push_str("hallo welt"); return Ok(out); }