diff --git a/src/commands/decompress.rs b/src/commands/decompress.rs index 628aee6..706b6f0 100644 --- a/src/commands/decompress.rs +++ b/src/commands/decompress.rs @@ -31,7 +31,7 @@ pub struct DecompressOptions<'a> { pub formats: Vec, pub output_dir: &'a Path, pub output_file_path: PathBuf, - pub is_output_dir_explicit: bool, + pub is_output_dir_provided: bool, pub question_policy: QuestionPolicy, pub quiet: bool, pub password: Option<&'a [u8]>, @@ -74,7 +74,7 @@ pub fn decompress_file(options: DecompressOptions) -> crate::Result<()> { options.output_dir, &options.output_file_path, options.question_policy, - options.is_output_dir_explicit, + options.is_output_dir_provided, )? { files } else { @@ -152,7 +152,7 @@ pub fn decompress_file(options: DecompressOptions) -> crate::Result<()> { options.output_dir, &options.output_file_path, options.question_policy, - options.is_output_dir_explicit, + options.is_output_dir_provided, )? { files } else { @@ -186,7 +186,7 @@ pub fn decompress_file(options: DecompressOptions) -> crate::Result<()> { options.output_dir, &options.output_file_path, options.question_policy, - options.is_output_dir_explicit, + options.is_output_dir_provided, )? { files } else { @@ -218,7 +218,7 @@ pub fn decompress_file(options: DecompressOptions) -> crate::Result<()> { options.output_dir, &options.output_file_path, options.question_policy, - options.is_output_dir_explicit, + options.is_output_dir_provided, )? { files } else { @@ -260,7 +260,7 @@ pub fn decompress_file(options: DecompressOptions) -> crate::Result<()> { options.output_dir, &options.output_file_path, options.question_policy, - options.is_output_dir_explicit, + options.is_output_dir_provided, )? { files } else { @@ -295,9 +295,9 @@ fn execute_decompression( output_dir: &Path, output_file_path: &Path, question_policy: QuestionPolicy, - is_output_dir_explicit: bool, + is_output_dir_provided: bool, ) -> crate::Result> { - if is_output_dir_explicit { + if is_output_dir_provided { unpack(unpack_fn, output_dir, question_policy) } else { smart_unpack(unpack_fn, output_dir, output_file_path, question_policy) @@ -313,7 +313,7 @@ fn unpack( output_dir: &Path, question_policy: QuestionPolicy, ) -> crate::Result> { - let is_valid_output_dir = !output_dir.exists() || (output_dir.is_dir() && output_dir.read_dir()?.count() == 0); + let is_valid_output_dir = !output_dir.exists() || (output_dir.is_dir() && output_dir.read_dir()?.next().is_none()); let output_dir_cleaned = if is_valid_output_dir { output_dir.to_owned() diff --git a/src/commands/mod.rs b/src/commands/mod.rs index a0aaa26..60a2866 100644 --- a/src/commands/mod.rs +++ b/src/commands/mod.rs @@ -176,7 +176,7 @@ pub fn run( // The directory that will contain the output files // We default to the current directory if the user didn't specify an output directory with --dir - let is_output_dir_explicit = output_dir.is_some(); + let is_output_dir_provided = output_dir.is_some(); let output_dir = if let Some(dir) = output_dir { utils::create_dir_if_non_existent(&dir)?; dir @@ -200,7 +200,7 @@ pub fn run( formats, output_dir: &output_dir, output_file_path, - is_output_dir_explicit, + is_output_dir_provided, question_policy, quiet: args.quiet, password: args.password.as_deref().map(|str| {