53 lines
1.2 KiB
Rust
53 lines
1.2 KiB
Rust
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<String, String> {
|
|
let mut out = String::new();
|
|
out.push_str("hallo welt");
|
|
|
|
return Ok(out);
|
|
}
|