From 2ed528ef4f9ea35d7cfbd1b46a5d3c5036fcc409 Mon Sep 17 00:00:00 2001 From: tuturuu Date: Sat, 10 Jan 2026 04:50:51 +0100 Subject: Cli skeleton, basic enums --- vegilctl/src/main.rs | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/vegilctl/src/main.rs b/vegilctl/src/main.rs index e7a11a9..cbfc2f2 100644 --- a/vegilctl/src/main.rs +++ b/vegilctl/src/main.rs @@ -1,3 +1,37 @@ +#[derive(Debug)] +enum Command { + Status, + Stop, + Start, + Enable, + Disable, +} +struct CliArgs { + command: Command, + target: String +} fn main() { - println!("Hello, world!"); + let command:Command = match std::env::args().nth(1).as_deref(){ + Some("status") => Command::Status, + Some("start") => Command::Start, + Some("stop") => Command::Stop, + Some("enable") => Command::Enable, + Some("disable") => Command::Disable, + Some(cmd) => { + eprintln!("invalid command arg:{}", cmd); + std::process::exit(1); + } + None => { + eprintln!("Invalid input: No command arg specified\nRun with --help to get help"); + std::process::exit(1); + } + }; + let target = std::env::args().nth(2).expect("no target arg specified"); + + let args = CliArgs { + command, + target + }; + + println!("command: {:?}, target: {:?}", args.command, args.target); } -- cgit v1.2.3