From 6b2711c5703c2b724066c88967c1924f1f1dbedf Mon Sep 17 00:00:00 2001 From: Tomasz Kramkowski Date: Sat, 3 May 2025 20:00:17 +0100 Subject: basic z2m-utils --- src/device.rs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/device.rs (limited to 'src/device.rs') diff --git a/src/device.rs b/src/device.rs new file mode 100644 index 0000000..3911b25 --- /dev/null +++ b/src/device.rs @@ -0,0 +1,27 @@ +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); + } + } +} -- cgit v1.2.3-70-g09d2