diff options
Diffstat (limited to 'nitrocli/src/args.rs')
-rw-r--r-- | nitrocli/src/args.rs | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/nitrocli/src/args.rs b/nitrocli/src/args.rs index cb66bb2..869734c 100644 --- a/nitrocli/src/args.rs +++ b/nitrocli/src/args.rs @@ -31,7 +31,9 @@ type Result<T> = result::Result<T, Error>; /// A command execution context that captures additional data pertaining /// the command execution. #[derive(Debug)] -pub struct ExecCtx {} +pub struct ExecCtx { + pub verbosity: u64, +} /// A top-level command for nitrocli. #[derive(Debug)] @@ -950,9 +952,15 @@ fn pws_status(ctx: &ExecCtx, args: Vec<String>) -> Result<()> { /// Parse the command-line arguments and return the selected command and /// the remaining arguments for the command. fn parse_arguments(args: Vec<String>) -> Result<(Command, ExecCtx, Vec<String>)> { + let mut verbosity = 0; let mut command = Command::Status; let mut subargs = vec![]; let mut parser = argparse::ArgumentParser::new(); + let _ = parser.refer(&mut verbosity).add_option( + &["-v", "--verbose"], + argparse::IncrBy::<u64>(1), + "Increase the log level (can be supplied multiple times)", + ); parser.set_description("Provides access to a Nitrokey device"); let _ = parser.refer(&mut command).required().add_argument( "command", @@ -970,7 +978,7 @@ fn parse_arguments(args: Vec<String>) -> Result<(Command, ExecCtx, Vec<String>)> subargs.insert(0, format!("nitrocli {}", command)); - let ctx = ExecCtx { }; + let ctx = ExecCtx { verbosity }; Ok((command, ctx, subargs)) } |