diff options
author | Daniel Mueller <deso@posteo.net> | 2020-04-11 12:29:22 -0700 |
---|---|---|
committer | Daniel Mueller <deso@posteo.net> | 2020-04-11 12:29:22 -0700 |
commit | 93c605418568bf71bcc3be6956f07f9650b45fea (patch) | |
tree | 20a5e1fd41a57ed31871974934422626fd4a4c6f /src/commands.rs | |
parent | eae8b2a1f0d1faf70776fccc12c93267a2143021 (diff) | |
download | nitrocli-93c605418568bf71bcc3be6956f07f9650b45fea.tar.gz nitrocli-93c605418568bf71bcc3be6956f07f9650b45fea.tar.bz2 |
Merge config_set function into commands.rs
As a next step moving us closer towards removing the args module, this
change merges the config_set function into the existing function of the
same name in the commands module.
Diffstat (limited to 'src/commands.rs')
-rw-r--r-- | src/commands.rs | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/commands.rs b/src/commands.rs index 55e6707..b40d552 100644 --- a/src/commands.rs +++ b/src/commands.rs @@ -579,13 +579,18 @@ pub fn config_get(ctx: &mut args::ExecCtx<'_>) -> Result<()> { } /// Write the Nitrokey configuration. -pub fn config_set( - ctx: &mut args::ExecCtx<'_>, - numlock: arg_defs::ConfigOption<u8>, - capslock: arg_defs::ConfigOption<u8>, - scrollock: arg_defs::ConfigOption<u8>, - user_password: Option<bool>, -) -> Result<()> { +pub fn config_set(ctx: &mut args::ExecCtx<'_>, args: arg_defs::ConfigSetArgs) -> Result<()> { + let numlock = arg_defs::ConfigOption::try_from(args.no_numlock, args.numlock, "numlock")?; + let capslock = arg_defs::ConfigOption::try_from(args.no_capslock, args.capslock, "capslock")?; + let scrollock = arg_defs::ConfigOption::try_from(args.no_scrollock, args.scrollock, "scrollock")?; + let otp_pin = if args.otp_pin { + Some(true) + } else if args.no_otp_pin { + Some(false) + } else { + None + }; + with_device(ctx, |ctx, device| { let mut device = authenticate_admin(ctx, device)?; let config = device @@ -595,7 +600,7 @@ pub fn config_set( numlock: numlock.or(config.numlock), capslock: capslock.or(config.capslock), scrollock: scrollock.or(config.scrollock), - user_password: user_password.unwrap_or(config.user_password), + user_password: otp_pin.unwrap_or(config.user_password), }; device .write_config(config) |