use anyhow::Result;
use clap::Parser;
use lasprs::daq::{DaqConfig, StreamMgr};
#[derive(Parser, Debug)]
#[command(author, version, about="Generates DAQ configurations for available devices.", long_about = None)]
struct Args {
#[arg(short, long)]
matches: Vec<String>,
}
fn main() -> Result<()> {
let args = Args::parse();
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(())
}