use clap::Clap;
use anyhow::Result;
use kb_remap::{Keyboard, Mod};
#[derive(Debug, Clap)]
struct Opt {
#[clap(short, long, value_name = "NAME")]
name: String,
#[clap(short, long, conflicts_with = "map")]
reset: bool,
#[clap(short, long, value_name = "SRC:DST")]
map: Vec<Mod>,
}
fn main() -> Result<()> {
let opt = Opt::parse();
let keyboard = Keyboard::lookup_by_name(&opt.name)?;
if opt.reset {
keyboard.reset()?;
} else {
keyboard.apply(opt.map.into_iter().collect())?;
}
Ok(())
}