diff --git a/src/commands/decompress.rs b/src/commands/decompress.rs index d7243cc..e1392a3 100644 --- a/src/commands/decompress.rs +++ b/src/commands/decompress.rs @@ -166,7 +166,7 @@ pub fn decompress_file( }, SevenZip => { sevenz_rust::decompress_file(input_file_path, output_dir).expect("can't decompress"); - 1 + fs::read_dir(output_dir)?.count() } }; diff --git a/src/error.rs b/src/error.rs index 896f383..3e755ea 100644 --- a/src/error.rs +++ b/src/error.rs @@ -34,6 +34,8 @@ pub enum Error { Custom { reason: FinalError }, /// Invalid format passed to `--format` InvalidFormat { reason: String }, + /// From sevenz_rust::Error + SevenzipError(sevenz_rust::Error) } /// Alias to std's Result with ouch's Error @@ -139,6 +141,9 @@ impl fmt::Display for Error { Error::UnsupportedZipArchive(reason) => FinalError::with_title("Unsupported zip archive").detail(*reason), Error::InvalidFormat { reason } => FinalError::with_title("Invalid archive format").detail(reason.clone()), Error::Custom { reason } => reason.clone(), + Error::SevenzipError( reason ) => { + FinalError::with_title("7z error").detail(reason.to_string()) + }, }; write!(f, "{err}")