diff options
| -rw-r--r-- | vegilctl/src/main.rs | 36 |
1 files changed, 35 insertions, 1 deletions
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); } |
