mirror of
https://github.com/ouch-org/ouch.git
synced 2025-06-07 03:55:28 +00:00
feat: print number of unpacked files
This commit is contained in:
parent
2d84686b25
commit
09c2830190
@ -338,6 +338,8 @@ fn decompress_file(
|
|||||||
|
|
||||||
utils::create_dir_if_non_existent(output_folder)?;
|
utils::create_dir_if_non_existent(output_folder)?;
|
||||||
|
|
||||||
|
let files_unpacked;
|
||||||
|
|
||||||
match formats[0] {
|
match formats[0] {
|
||||||
Gzip | Bzip | Lzma | Zstd => {
|
Gzip | Bzip | Lzma | Zstd => {
|
||||||
reader = chain_reader_decoder(&formats[0], reader)?;
|
reader = chain_reader_decoder(&formats[0], reader)?;
|
||||||
@ -346,25 +348,26 @@ fn decompress_file(
|
|||||||
let mut writer = fs::File::create(&output_path)?;
|
let mut writer = fs::File::create(&output_path)?;
|
||||||
|
|
||||||
io::copy(&mut reader, &mut writer)?;
|
io::copy(&mut reader, &mut writer)?;
|
||||||
|
files_unpacked = vec![output_path];
|
||||||
}
|
}
|
||||||
Tar => {
|
Tar => {
|
||||||
let _ = crate::archive::tar::unpack_archive(reader, output_folder, question_policy)?;
|
files_unpacked = crate::archive::tar::unpack_archive(reader, output_folder, question_policy)?;
|
||||||
}
|
}
|
||||||
Tgz => {
|
Tgz => {
|
||||||
let reader = chain_reader_decoder(&Gzip, reader)?;
|
let reader = chain_reader_decoder(&Gzip, reader)?;
|
||||||
let _ = crate::archive::tar::unpack_archive(reader, output_folder, question_policy)?;
|
files_unpacked = crate::archive::tar::unpack_archive(reader, output_folder, question_policy)?;
|
||||||
}
|
}
|
||||||
Tbz => {
|
Tbz => {
|
||||||
let reader = chain_reader_decoder(&Bzip, reader)?;
|
let reader = chain_reader_decoder(&Bzip, reader)?;
|
||||||
let _ = crate::archive::tar::unpack_archive(reader, output_folder, question_policy)?;
|
files_unpacked = crate::archive::tar::unpack_archive(reader, output_folder, question_policy)?;
|
||||||
}
|
}
|
||||||
Tlzma => {
|
Tlzma => {
|
||||||
let reader = chain_reader_decoder(&Lzma, reader)?;
|
let reader = chain_reader_decoder(&Lzma, reader)?;
|
||||||
let _ = crate::archive::tar::unpack_archive(reader, output_folder, question_policy)?;
|
files_unpacked = crate::archive::tar::unpack_archive(reader, output_folder, question_policy)?;
|
||||||
}
|
}
|
||||||
Tzst => {
|
Tzst => {
|
||||||
let reader = chain_reader_decoder(&Zstd, reader)?;
|
let reader = chain_reader_decoder(&Zstd, reader)?;
|
||||||
let _ = crate::archive::tar::unpack_archive(reader, output_folder, question_policy)?;
|
files_unpacked = crate::archive::tar::unpack_archive(reader, output_folder, question_policy)?;
|
||||||
}
|
}
|
||||||
Zip => {
|
Zip => {
|
||||||
eprintln!("Compressing first into .zip.");
|
eprintln!("Compressing first into .zip.");
|
||||||
@ -378,11 +381,12 @@ fn decompress_file(
|
|||||||
io::copy(&mut reader, &mut vec)?;
|
io::copy(&mut reader, &mut vec)?;
|
||||||
let zip_archive = zip::ZipArchive::new(io::Cursor::new(vec))?;
|
let zip_archive = zip::ZipArchive::new(io::Cursor::new(vec))?;
|
||||||
|
|
||||||
let _ = crate::archive::zip::unpack_archive(zip_archive, output_folder, question_policy)?;
|
files_unpacked = crate::archive::zip::unpack_archive(zip_archive, output_folder, question_policy)?;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
info!("Successfully decompressed archive in {}.", nice_directory_display(output_folder));
|
info!("Successfully decompressed archive in {}.", nice_directory_display(output_folder));
|
||||||
|
info!("Files unpacked: {}", files_unpacked.len());
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user