@@ -21,21 +21,21 @@ use up_rust::{LocalUriProvider, UTransport};
2121use up_subscription:: { ConfigurationError , USubscriptionConfiguration , USubscriptionService } ;
2222
2323#[ cfg( unix) ]
24- use daemonize :: Daemonize ;
24+ use daemonize2 :: Daemonize ;
2525
26- // #[cfg(feature = "mqtt5")]
27- // use up_transport_mqtt5::Mqtt5TransportOptions;
26+ #[ cfg( feature = "mqtt5" ) ]
27+ use up_transport_mqtt5:: Mqtt5TransportOptions ;
2828
29- // #[cfg(feature = "zenoh")]
30- // use crate::transport::zenoh::ZenohArgs;
29+ #[ cfg( feature = "zenoh" ) ]
30+ use crate :: transport:: zenoh:: ZenohArgs ;
3131
3232mod transport;
3333#[ cfg( feature = "local" ) ]
3434use transport:: get_local_transport;
35- // #[cfg(feature = "mqtt5")]
36- // use transport::get_mqtt5_transport;
37- // #[cfg(feature = "zenoh")]
38- // use transport::get_zenoh_transport;
35+ #[ cfg( feature = "mqtt5" ) ]
36+ use transport:: get_mqtt5_transport;
37+ #[ cfg( feature = "zenoh" ) ]
38+ use transport:: get_zenoh_transport;
3939
4040fn between_1_and_1024 ( s : & str ) -> Result < usize , String > {
4141 number_range ( s, 1 , 1024 )
@@ -71,10 +71,10 @@ enum Transport {
7171 None ,
7272 #[ cfg( feature = "local" ) ]
7373 Local ,
74- // #[cfg(feature = "mqtt5")]
75- // Mqtt5,
76- // #[cfg(feature = "zenoh")]
77- // Zenoh,
74+ #[ cfg( feature = "mqtt5" ) ]
75+ Mqtt5 ,
76+ #[ cfg( feature = "zenoh" ) ]
77+ Zenoh ,
7878}
7979
8080// All our args
@@ -113,27 +113,32 @@ pub(crate) struct Args {
113113 /// Increase verbosity of output, default is false (reduced verbosity)
114114 #[ arg( short, long, env, default_value_t = false ) ]
115115 verbose : bool ,
116- // #[cfg(feature = "mqtt5")]
117- // #[command(flatten)]
118- // mqtt_args: Mqtt5TransportOptions,
119116
120- // #[cfg(feature = "zenoh")]
121- // #[command(flatten)]
122- // zenoh_args: ZenohArgs,
117+ #[ cfg( feature = "mqtt5" ) ]
118+ #[ command( flatten) ]
119+ mqtt_args : Mqtt5TransportOptions ,
120+
121+ #[ cfg( feature = "zenoh" ) ]
122+ #[ command( flatten) ]
123+ zenoh_args : ZenohArgs ,
123124}
124125
125126#[ tokio:: main]
126127async fn main ( ) {
127128 let args = Args :: parse ( ) ;
128129
129130 // Setup logging, get configuration
130- std:: env:: set_var ( "RUST_LOG" , "info" ) ;
131- // #[cfg(feature = "zenoh")]
132- // std::env::set_var("RUST_LOG", "info,zenoh=warn");
133- if args. verbose {
134- std:: env:: set_var ( "RUST_LOG" , "trace" ) ;
135- // #[cfg(feature = "zenoh")]
136- // std::env::set_var("RUST_LOG", "trace,zenoh=info");
131+ unsafe {
132+ // accept unsafe for now, as at this point this program definiely is not multi-threaded
133+ std:: env:: set_var ( "RUST_LOG" , "info" ) ;
134+ #[ cfg( feature = "zenoh" ) ]
135+ std:: env:: set_var ( "RUST_LOG" , "info,zenoh=warn" ) ;
136+
137+ if args. verbose {
138+ std:: env:: set_var ( "RUST_LOG" , "trace" ) ;
139+ #[ cfg( feature = "zenoh" ) ]
140+ std:: env:: set_var ( "RUST_LOG" , "trace,zenoh=info" ) ;
141+ }
137142 }
138143 up_subscription:: init_once ( ) ;
139144
@@ -153,20 +158,20 @@ async fn main() {
153158 . inspect_err ( |e| panic ! ( "Error setting up local transport: {}" , e. get_message( ) ) )
154159 . unwrap ( ) ,
155160 ) ,
156- // #[cfg(feature = "mqtt5")]
157- // Transport::Mqtt5 => Some(
158- // get_mqtt5_transport(_config.clone(), args.mqtt_args)
159- // .await
160- // .inspect_err(|e| panic!("Error setting up MQTT5 transport: {}", e.get_message()))
161- // .unwrap(),
162- // ),
163- // #[cfg(feature = "zenoh")]
164- // Transport::Zenoh => Some(
165- // get_zenoh_transport(_config.clone(), args.zenoh_args)
166- // .await
167- // .inspect_err(|e| panic!("Error setting up Zenoh transport: {}", e.get_message()))
168- // .unwrap(),
169- // ),
161+ #[ cfg( feature = "mqtt5" ) ]
162+ Transport :: Mqtt5 => Some (
163+ get_mqtt5_transport ( _config. clone ( ) , args. mqtt_args )
164+ . await
165+ . inspect_err ( |e| panic ! ( "Error setting up MQTT5 transport: {}" , e. get_message( ) ) )
166+ . unwrap ( ) ,
167+ ) ,
168+ #[ cfg( feature = "zenoh" ) ]
169+ Transport :: Zenoh => Some (
170+ get_zenoh_transport ( _config. clone ( ) , args. zenoh_args )
171+ . await
172+ . inspect_err ( |e| panic ! ( "Error setting up Zenoh transport: {}" , e. get_message( ) ) )
173+ . unwrap ( ) ,
174+ ) ,
170175 Transport :: None => None ,
171176 } ;
172177
@@ -188,7 +193,7 @@ async fn main() {
188193 #[ cfg( unix) ]
189194 if args. daemon {
190195 let daemonize = Daemonize :: new ( ) ;
191- match daemonize. start ( ) {
196+ match unsafe { daemonize. start ( ) } {
192197 Ok ( _) => {
193198 debug ! ( "Success, running daemonized" ) ;
194199 }
0 commit comments