Skip to content

Commit 96676c6

Browse files
committed
add dev mode
1 parent ffcce27 commit 96676c6

File tree

4 files changed

+28
-15
lines changed

4 files changed

+28
-15
lines changed

Cargo.lock

Lines changed: 7 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ BINARY = $(TARGET_DIR)/pulsebeam
1818
all: build
1919

2020
dev:
21-
$(CARGO_CMD) run -p pulsebeam
21+
$(CARGO_CMD) run -p pulsebeam -- --dev
2222

2323
build:
2424
$(CARGO_CMD) build --profile profiling -p pulsebeam

pulsebeam/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ once_cell = "1.21.3"
4040
ahash = "0.8.12"
4141
tokio-stream = { version = "0.1.17", features = ["sync"] }
4242
futures-concurrency = "7.6.3"
43+
clap = { version = "4.5.53", features = ["derive"] }
4344

4445
[target.'cfg(not(target_env = "msvc"))'.dependencies]
4546
tikv-jemallocator = { version = "0.6.0", features = ["profiling", "unprefixed_malloc_on_supported_platforms", "disable_initial_exec_tls"] }

pulsebeam/src/main.rs

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,22 @@ use std::{
1515
num::NonZeroUsize,
1616
};
1717

18+
use clap::Parser;
1819
use pulsebeam::node;
1920
use systemstat::{IpAddr as SysIpAddr, Platform, System};
2021
use tracing_subscriber::EnvFilter;
2122

23+
#[derive(Parser, Debug)]
24+
#[command(version, about, long_about = None)]
25+
struct Args {
26+
/// Enable development mode preset
27+
#[arg(short, long)]
28+
dev: bool,
29+
}
30+
2231
fn main() {
32+
let args = Args::parse();
33+
2334
let env_filter =
2435
EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new("pulsebeam=info"));
2536
tracing_subscriber::fmt()
@@ -33,28 +44,28 @@ fn main() {
3344

3445
let rt = tokio::runtime::Builder::new_multi_thread()
3546
.enable_all()
36-
// .disable_lifo_slot()
3747
.worker_threads(workers)
3848
.build()
3949
.unwrap();
40-
// let rt = tokio::runtime::LocalRuntime::new().unwrap();
4150

51+
let rtc_port: u16 = if args.dev { 3478 } else { 443 };
4252
let shutdown = CancellationToken::new();
43-
rt.block_on(run(shutdown.clone(), workers));
53+
rt.block_on(run(shutdown.clone(), workers, rtc_port));
4454
shutdown.cancel();
4555
}
4656

47-
pub async fn run(shutdown: CancellationToken, workers: usize) {
57+
pub async fn run(shutdown: CancellationToken, workers: usize, rtc_port: u16) {
4858
let external_ip = select_host_address();
49-
let external_addr: SocketAddr = format!("{}:3478", external_ip).parse().unwrap();
59+
let external_addr: SocketAddr = format!("{}:{}", external_ip, rtc_port).parse().unwrap();
5060

51-
let local_addr: SocketAddr = "0.0.0.0:3478".parse().unwrap();
61+
let local_addr: SocketAddr = format!("0.0.0.0:{}", rtc_port).parse().unwrap();
5262
let http_addr: SocketAddr = "0.0.0.0:3000".parse().unwrap();
5363
let internal_http_addr: SocketAddr = "0.0.0.0:6060".parse().unwrap();
5464
tracing::info!(
55-
"server listening at {}:3000 (signaling), {}:3478 (webrtc), and 0.0.0.0:6060 (metrics/pprof)",
65+
"server listening at {}:3000 (signaling), {}:{} (webrtc), and 0.0.0.0:6060 (metrics/pprof)",
66+
external_ip,
5667
external_ip,
57-
external_ip
68+
rtc_port
5869
);
5970

6071
// Run the main logic and signal handler concurrently

0 commit comments

Comments
 (0)