Added third parameter: MQTT server
This commit is contained in:
parent
fbdf1ea24b
commit
a0e18c1a7d
@ -387,11 +387,40 @@ fn main() -> ExitCode {
|
||||
2 => {
|
||||
let ip = &args[1];
|
||||
|
||||
// Read broker URL from environment
|
||||
let broker = match std::env::var("MQTT_BROKER") {
|
||||
Ok(val) if !val.is_empty() => val,
|
||||
_ => {
|
||||
eprintln!("Environment variable MQTT_BROKER not set or empty, MQTT disabled");
|
||||
String::new()
|
||||
}
|
||||
};
|
||||
|
||||
let mut device_online = check_connection(ip.to_string());
|
||||
return main_function(ip, Some(broker))
|
||||
|
||||
}
|
||||
// two argument passed
|
||||
3 => {
|
||||
let ip = &args[1];
|
||||
let mqtt = &args[2];
|
||||
return main_function( ip,
|
||||
Some(mqtt.to_string())
|
||||
);
|
||||
}
|
||||
// all the other cases
|
||||
_ => {
|
||||
// show a help message
|
||||
help();
|
||||
return ExitCode::SUCCESS;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn main_function(ip: &String, mqttBroker: Option<String>) -> ExitCode {
|
||||
let mut device_online: bool = check_connection(ip.to_string());
|
||||
if !device_online {
|
||||
println!("{} not online", ip);
|
||||
// return ExitCode::FAILURE;
|
||||
return ExitCode::FAILURE;
|
||||
}
|
||||
|
||||
|
||||
@ -411,19 +440,11 @@ fn main() -> ExitCode {
|
||||
|
||||
// Initialize MQTT client from MQTT_BROKER env var (else disabled)
|
||||
let mqtt_client: Option<Client> = {
|
||||
// Read broker URL from environment
|
||||
let broker = match std::env::var("MQTT_BROKER") {
|
||||
Ok(val) if !val.is_empty() => val,
|
||||
_ => {
|
||||
eprintln!("Environment variable MQTT_BROKER not set or empty, MQTT disabled");
|
||||
String::new()
|
||||
}
|
||||
};
|
||||
if broker.is_empty() {
|
||||
if mqttBroker.is_none() {
|
||||
None
|
||||
} else {
|
||||
} else if mqttBroker.is_some() {
|
||||
let create_opts = CreateOptionsBuilder::new()
|
||||
.server_uri(&broker)
|
||||
.server_uri(mqttBroker.clone().unwrap())
|
||||
.client_id("ledboard_client")
|
||||
.finalize();
|
||||
match Client::new(create_opts) {
|
||||
@ -435,16 +456,18 @@ fn main() -> ExitCode {
|
||||
match cli.connect(conn_opts) {
|
||||
Ok(_) => Some(cli),
|
||||
Err(e) => {
|
||||
eprintln!("Failed to connect to MQTT broker '{}': {}", broker, e);
|
||||
eprintln!("Failed to connect to MQTT broker '{}': {}", mqttBroker.clone().unwrap(), e);
|
||||
None
|
||||
}
|
||||
}
|
||||
}
|
||||
Err(e) => {
|
||||
eprintln!("Failed to create MQTT client for '{}': {}", broker, e);
|
||||
eprintln!("Failed to create MQTT client for '{}': {}", mqttBroker.clone().unwrap(), e);
|
||||
None
|
||||
}
|
||||
}
|
||||
} else {
|
||||
None
|
||||
}
|
||||
};
|
||||
|
||||
@ -489,11 +512,3 @@ fn main() -> ExitCode {
|
||||
|
||||
}
|
||||
}
|
||||
// all the other cases
|
||||
_ => {
|
||||
// show a help message
|
||||
help();
|
||||
return ExitCode::SUCCESS;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user