aboutsummaryrefslogtreecommitdiff
path: root/src/commands.rs
diff options
context:
space:
mode:
authorDaniel Mueller <deso@posteo.net>2020-04-11 12:29:22 -0700
committerDaniel Mueller <deso@posteo.net>2020-04-11 12:29:22 -0700
commit93c605418568bf71bcc3be6956f07f9650b45fea (patch)
tree20a5e1fd41a57ed31871974934422626fd4a4c6f /src/commands.rs
parenteae8b2a1f0d1faf70776fccc12c93267a2143021 (diff)
downloadnitrocli-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.rs21
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)