use getopts::Options;
use tio::proto::DeviceRoute;
use tio::util;
use twinleaf::tio;
pub fn tio_opts() -> Options {
let mut opts = Options::new();
opts.optopt(
"r",
"",
&format!("sensor root (default {})", util::default_proxy_url()),
"address",
);
opts.optopt(
"s",
"",
"sensor path in the sensor tree (default /)",
"path",
);
opts
}
pub fn tio_parseopts(opts: &Options, args: &[String]) -> (getopts::Matches, String, DeviceRoute) {
let matches = match opts.parse(args) {
Ok(m) => m,
Err(f) => {
print!("{}", opts.usage("Invalid tool invocation"));
panic!("{}", f.to_string())
}
};
let root = if let Some(url) = matches.opt_str("r") {
url
} else {
"tcp://localhost".to_string()
};
let route = if let Some(path) = matches.opt_str("s") {
DeviceRoute::from_str(&path).unwrap()
} else {
DeviceRoute::root()
};
(matches, root, route)
}