use anyhow::Result;
use argh::FromArgs;
use lasprs::daq::{DaqConfig, StreamMgr};
#[derive(Debug, FromArgs)]
struct Args {
#[argh(option, short = 'm')]
matches: Vec<String>,
}
fn main() -> Result<()> {
let args: Args = argh::from_env();
let write_all = args.matches.is_empty();
let mut smgr = StreamMgr::new();
let devs = smgr.getDeviceInfo();
for dev in devs.iter() {
let filename = dev.device_name.clone() + ".toml";
if write_all {
let daqconfig = DaqConfig::newFromDeviceInfo(dev);
daqconfig.serialize_TOML_file(&filename.clone().into())?;
} else {
for m in args.matches.iter() {
let needle = m.to_lowercase();
let dev_lower = dev.device_name.to_lowercase();
if dev_lower.contains(&needle) {
DaqConfig::newFromDeviceInfo(dev)
.serialize_TOML_file(&filename.clone().into())?;
}
}
}
}
Ok(())
}