Added third parameter: MQTT server

This commit is contained in:
Ollo 2025-04-30 21:46:53 +02:00
parent fbdf1ea24b
commit a0e18c1a7d

View File

@ -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
}
};
@ -488,12 +511,4 @@ fn main() -> ExitCode {
}
}
}
// all the other cases
_ => {
// show a help message
help();
return ExitCode::SUCCESS;
}
}
}