Skip to content

Commit e385026

Browse files
committed
Add command line arguments to the standalone server
1 parent 055a129 commit e385026

File tree

2 files changed

+27
-4
lines changed

2 files changed

+27
-4
lines changed

server/Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ rust-version = "1.61"
1111
[dependencies]
1212
hyper = { version = "0.14.20", features = ["server"] }
1313
tokio = { version = "1.21.2", features = ["macros", "rt-multi-thread"] }
14+
tracing = "0.1.37"
1415
tracing-subscriber = "0.3.16"
16+
clap = { version = "4.0.14", features = ["derive"] }
1517

1618
matrix-http-rendezvous = { path = "../", version = "0.1.2" }

server/src/main.rs

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,39 @@
1616
#![deny(clippy::all)]
1717
#![warn(clippy::pedantic)]
1818

19-
use std::net::SocketAddr;
19+
use clap::Parser;
20+
use std::net::{IpAddr, Ipv4Addr, SocketAddr};
21+
22+
#[derive(Parser)]
23+
struct Options {
24+
/// Address on which to listen
25+
#[arg(short, long, default_value_t = IpAddr::V4(Ipv4Addr::LOCALHOST))]
26+
address: IpAddr,
27+
28+
/// Port on which to listen
29+
#[arg(short, long, default_value_t = 8090)]
30+
port: u16,
31+
32+
/// Path prefix on which to mount the rendez-vous server
33+
#[arg(long)]
34+
prefix: Option<String>,
35+
}
2036

2137
#[tokio::main]
2238
async fn main() {
2339
tracing_subscriber::fmt::init();
2440

25-
let app = matrix_http_rendezvous::router("");
41+
let options = Options::parse();
42+
let prefix = options.prefix.unwrap_or_default();
43+
44+
let addr = SocketAddr::from((options.address, options.port));
45+
46+
let service = matrix_http_rendezvous::router(&prefix);
2647

27-
let addr = SocketAddr::from(([127, 0, 0, 1], 8090));
48+
tracing::info!("Listening on http://{addr}");
2849

2950
hyper::Server::bind(&addr)
30-
.serve(app.into_make_service())
51+
.serve(service.into_make_service())
3152
.await
3253
.unwrap();
3354
}

0 commit comments

Comments
 (0)