aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/arg_defs.rs2
-rw-r--r--src/args.rs15
-rw-r--r--src/commands.rs21
3 files changed, 14 insertions, 24 deletions
diff --git a/src/arg_defs.rs b/src/arg_defs.rs
index fd296e4..133ef19 100644
--- a/src/arg_defs.rs
+++ b/src/arg_defs.rs
@@ -93,7 +93,7 @@ Command! {ConfigCommand, [
/// Prints the Nitrokey configuration
Get => crate::commands::config_get,
/// Changes the Nitrokey configuration
- Set(ConfigSetArgs) => crate::args::config_set,
+ Set(ConfigSetArgs) => crate::commands::config_set,
]}
#[derive(Debug, PartialEq, structopt::StructOpt)]
diff --git a/src/args.rs b/src/args.rs
index 3a1f2c8..d0b2a88 100644
--- a/src/args.rs
+++ b/src/args.rs
@@ -22,7 +22,6 @@ use std::io;
use std::result;
use crate::arg_defs;
-use crate::commands;
use crate::error::Error;
use crate::RunCtx;
@@ -68,20 +67,6 @@ impl<'io> Stdio for ExecCtx<'io> {
}
}
-pub fn config_set(ctx: &mut 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
- };
- commands::config_set(ctx, numlock, capslock, scrollock, otp_pin)
-}
-
/// Parse the command-line arguments and execute the selected command.
pub(crate) fn handle_arguments(ctx: &mut RunCtx<'_>, args: Vec<String>) -> Result<()> {
use structopt::StructOpt;
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)