diff options
Diffstat (limited to 'nitrocli/src/error.rs')
-rw-r--r-- | nitrocli/src/error.rs | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/nitrocli/src/error.rs b/nitrocli/src/error.rs index ffcc56b..78b8148 100644 --- a/nitrocli/src/error.rs +++ b/nitrocli/src/error.rs @@ -25,7 +25,7 @@ use std::string; #[derive(Debug)] pub enum Error { ArgparseError(i32), - CommandError(nitrokey::CommandError), + CommandError(Option<&'static str>, nitrokey::CommandError), IoError(io::Error), Utf8Error(str::Utf8Error), Error(String), @@ -33,7 +33,7 @@ pub enum Error { impl From<nitrokey::CommandError> for Error { fn from(e: nitrokey::CommandError) -> Error { - Error::CommandError(e) + Error::CommandError(None, e) } } @@ -59,7 +59,12 @@ impl fmt::Display for Error { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match *self { Error::ArgparseError(_) => write!(f, "Could not parse arguments"), - Error::CommandError(ref e) => write!(f, "Command error: {}", e), + Error::CommandError(ref ctx, ref e) => { + if let Some(ctx) = ctx { + write!(f, "{}: ", ctx)?; + } + write!(f, "{}", e) + } Error::Utf8Error(_) => write!(f, "Encountered UTF-8 conversion error"), Error::IoError(ref e) => write!(f, "IO error: {}", e), Error::Error(ref e) => write!(f, "{}", e), |