use std::{env::ArgsOs, process}; use crate::config::Config; mod on_action; mod set_state; pub fn main(argv0: &str, config: Config, mut args: ArgsOs) { let (Some(device_name), Some(command)) = (args.next(), args.next()) else { eprintln!("Usage: {argv0} device [args...]"); process::exit(1); }; let Some(device_name) = device_name.to_str() else { eprintln!("{argv0}: error: Invalid device name"); process::exit(1); }; match command.to_str() { Some("on-action") => on_action::main(argv0, config, device_name, args), Some("set-state") => set_state::main(argv0, config, device_name, args), _ => { eprintln!("{argv0}: error: Unknown device command: {command:?}"); process::exit(1); } } }