@@ -15,11 +15,22 @@ use std::{
1515 num:: NonZeroUsize ,
1616} ;
1717
18+ use clap:: Parser ;
1819use pulsebeam:: node;
1920use systemstat:: { IpAddr as SysIpAddr , Platform , System } ;
2021use 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+
2231fn 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