diff --git a/src/shell_interface.rs b/src/shell_interface.rs index d16dd5b..8487f50 100644 --- a/src/shell_interface.rs +++ b/src/shell_interface.rs @@ -202,15 +202,20 @@ impl CommandResult { } } -impl CommandResult> { +impl CommandResult> { pub fn into_result_with_error_logging( self, logger: &Logger, - ) -> Result>> { + ) -> Result>> + where + T: MaybeCast, + { self.result.map_err(|error| { - if let ExecutionError::BadExitStatus(output) = &error { - log!(logger, error, "{}", output.stdout.to_string_lossy()); - log!(logger, error, "{}", output.stderr.to_string_lossy()); + if let ExecutionError::BadExitStatus(t) = &error { + if let Some(output) = t.maybe_cast() { + log!(logger, error, "{}", output.stdout.to_string_lossy()); + log!(logger, error, "{}", output.stderr.to_string_lossy()); + } } CommandError { command: self.command,