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; } } } }