From 3d29e170604522fefed10b708f3f97b1be3c8caf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20M=2E=20Bezerra?= Date: Thu, 13 Oct 2022 18:25:38 -0300 Subject: [PATCH 1/2] remove automatic detection for partial compression --- src/commands/mod.rs | 44 +------------------------------------------- 1 file changed, 1 insertion(+), 43 deletions(-) diff --git a/src/commands/mod.rs b/src/commands/mod.rs index b1c3fec30..d264e5129 100644 --- a/src/commands/mod.rs +++ b/src/commands/mod.rs @@ -104,7 +104,7 @@ pub fn run( } // Formats from path extension, like "file.tar.gz.xz" -> vec![Tar, Gzip, Lzma] - let mut formats = extension::extensions_from_path(&output_path); + let formats = extension::extensions_from_path(&output_path); if formats.is_empty() { let error = FinalError::with_title(format!("Cannot compress to '{}'.", to_utf(&output_path))) @@ -172,48 +172,6 @@ pub fn run( } let output_file = fs::File::create(&output_path)?; - - if !represents_several_files(&files) { - // It is possible the file is already partially compressed so we don't want to compress it again - // `ouch compress file.tar.gz file.tar.gz.xz` should produce `file.tar.gz.xz` and not `file.tar.gz.tar.gz.xz` - let input_extensions = extension::extensions_from_path(&files[0]); - - // We calculate the formats that are left if we filter out a sublist at the start of what we have that's the same as the input formats - let mut new_formats = Vec::with_capacity(formats.len()); - for (inp_ext, out_ext) in input_extensions.iter().zip(&formats) { - if inp_ext.compression_formats == out_ext.compression_formats { - new_formats.push(out_ext.clone()); - } else if inp_ext - .compression_formats - .iter() - .zip(out_ext.compression_formats.iter()) - .all(|(inp, out)| inp == out) - { - let new_ext = Extension::new( - &out_ext.compression_formats[..inp_ext.compression_formats.len()], - &out_ext.display_text, - ); - new_formats.push(new_ext); - break; - } - } - // If the input is a sublist at the start of `formats` then remove the extensions - // Note: If input_extensions is empty then it will make `formats` empty too, which we don't want - if !input_extensions.is_empty() && new_formats != formats { - // Safety: - // We checked above that input_extensions isn't empty, so files[0] has an extension. - // - // Path::extension says: "if there is no file_name, then there is no extension". - // Contrapositive statement: "if there is extension, then there is file_name". - info!( - accessible, // important information - "Partial compression detected. Compressing {} into {}", - to_utf(files[0].as_path().file_name().unwrap().as_ref()), - to_utf(&output_path) - ); - formats = new_formats; - } - } let compress_result = compress_files( files, formats, From 2cb75a9eddccf59b04b80967c51b0a23b20bcb87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20M=2E=20Bezerra?= Date: Thu, 13 Oct 2022 18:46:00 -0300 Subject: [PATCH 2/2] add changelog entry --- CHANGELOG.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3847a96d9..e5e4f764f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,9 @@ Categories Used: - New Features - new features added to ouch itself, not CI - Bug Fixes - Improvements - general enhancements -- Tweaks - Anything that doesn't fit into other categories, small typo fixes, most CI stuff, meta changes (e.g. README updates), etc. +- Tweaks - anything that doesn't fit into other categories, small typo fixes, most CI stuff, + meta changes (e.g. README updates), etc. +- Regression - removal of a feature (that might be readded, or reworked in the future) **Bullet points in chronological order by PR** @@ -100,6 +102,10 @@ Categories Used: - Update dependencies [\#276](https://github.com/ouch-org/ouch/pull/276) ([figsoda](https://github.com/figsoda)) - Rewrite progress module [\#280](https://github.com/ouch-org/ouch/pull/280) ([figsoda](https://github.com/figsoda)) +### Regression + +- Remove automatic detection for partial compression [\#286](https://github.com/ouch-org/ouch/pull/286) ([marcospb19](https://github.com/marcospb19)) + ### New Contributors - [@sigmaSd](https://github.com/sigmaSd) made their first contribution in [\#154](https://github.com/ouch-org/ouch/pull/154)