diff options
| author | Daniel Mueller <deso@posteo.net> | 2019-07-14 15:53:25 -0700 | 
|---|---|---|
| committer | Daniel Mueller <deso@posteo.net> | 2019-07-14 15:53:25 -0700 | 
| commit | 8cebc05e924c3b6c927a939bd45862a6ddf6edef (patch) | |
| tree | 070658a3170a63121e18d5cc7fa2a8a2194685d6 | |
| parent | ba80a9087cc2ca91e81fdb9427213421567419ea (diff) | |
| download | nitrocli-8cebc05e924c3b6c927a939bd45862a6ddf6edef.tar.gz nitrocli-8cebc05e924c3b6c927a939bd45862a6ddf6edef.tar.bz2 | |
Include Nitrokey model in error message when no device is found
For functionality that explicitly works with the storage device we emit
an error message stating that a "Nitrokey Storage" device could not be
found. When the user chooses the model using the -m/--model argument
that is not the case.
With this patch we adjust the error message printed.
| -rw-r--r-- | nitrocli/src/args.rs | 9 | ||||
| -rw-r--r-- | nitrocli/src/commands.rs | 8 | 
2 files changed, 14 insertions, 3 deletions
| diff --git a/nitrocli/src/args.rs b/nitrocli/src/args.rs index ae09c07..b83c495 100644 --- a/nitrocli/src/args.rs +++ b/nitrocli/src/args.rs @@ -108,6 +108,15 @@ Enum! {DeviceModel, [    Storage => "storage",  ]} +impl DeviceModel { +  pub fn as_user_facing_str(&self) -> &str { +    match self { +      DeviceModel::Pro => "Pro", +      DeviceModel::Storage => "Storage", +    } +  } +} +  impl From<DeviceModel> for nitrokey::Model {    fn from(model: DeviceModel) -> nitrokey::Model {      match model { diff --git a/nitrocli/src/commands.rs b/nitrocli/src/commands.rs index 208a0ec..583870b 100644 --- a/nitrocli/src/commands.rs +++ b/nitrocli/src/commands.rs @@ -62,10 +62,12 @@ fn get_device(ctx: &mut args::ExecCtx<'_>) -> Result<nitrokey::DeviceWrapper> {    set_log_level(ctx);    match ctx.model { -    Some(model) => nitrokey::connect_model(model.into()), -    None => nitrokey::connect(), +    Some(model) => nitrokey::connect_model(model.into()).map_err(|_| { +      let error = format!("Nitrokey {} device not found", model.as_user_facing_str()); +      Error::Error(error) +    }), +    None => nitrokey::connect().map_err(|_| Error::from("Nitrokey device not found")),    } -  .map_err(|_| Error::from("Nitrokey device not found"))  }  /// Connect to a Nitrokey Storage device and return it. | 
