hueclient 0.5.0

Rust library for Philips Hue lights
Documentation
extern crate hueclient;
use hueclient::HueError;
use std::env;

#[allow(while_true)]
#[allow(dead_code)]
#[tokio::main]
async fn main() {
    #[cfg(feature = "pretty_env_logger")]
    pretty_env_logger::init_custom_env("HUE_LOG");

    let args: Vec<String> = env::args().collect();
    if args.len() != 2 {
        println!("usage : {:?} <devicetype>", args[0]);
    } else {
        let bridge = hueclient::Bridge::discover_required().await;
        println!("posting user {:?} in {:?}", args[1], bridge);
        loop {
            let r = bridge.clone().register_application(&args[1]).await;
            match r {
                Ok(r) => {
                    eprint!("done: ");
                    println!("{}", r.application_key);
                    break;
                }
                Err(HueError::BridgeError { code: 101, .. }) => {
                    println!("Push the bridge button");
                    std::thread::sleep(::std::time::Duration::from_secs(5));
                }
                Err(e) => panic!("error {e}"),
            }
        }
    }
}