lifx-mqtt-bridge/src/main.rs

55 lines
1.4 KiB
Rust

extern crate clap;
mod lamp_lifx;
mod lamp_mqtt;
mod lifx_discover;
mod mqtt_connection;
use crate::mqtt_connection::Mqtt;
use clap::App;
use clap::Arg;
pub const MQTT_ID: &str = "lifx-mqtt-bridge";
fn main() {
let matches = App::new("lifx-mqtt-bridge")
.version("0.1")
.about("Lifx Mqtt Bridge")
.author("Buntpfotenkätzchen")
.arg(
Arg::with_name("host")
.short("h")
.long("host")
.required(true)
.takes_value(true),
)
.arg(
Arg::with_name("port")
.short("p")
.long("port")
.takes_value(true)
.default_value("1883"),
)
.get_matches();
let host = matches.value_of("host").unwrap();
let port: u16 = matches.value_of("port").unwrap().parse().unwrap();
println!("Connecting to {}:{}", host, port);
let mut mqtt = match Mqtt::connect(host, port) {
Ok(mqtt) => mqtt,
Err(err) => panic!("Error connecting: {}", err),
};
loop {
match mqtt.notifications.recv() {
Ok(notification) => {
println!("MQTT notification received: {:#?}", notification);
}
Err(recv_error) => {
println!("MQTT channel closed: {}", recv_error);
return;
}
}
}
}