chore: cargo fmt

This commit is contained in:
Talison Fabio 2025-03-22 22:33:11 -03:00
parent 782cd27580
commit 3626e7196f
4 changed files with 35 additions and 26 deletions

View File

@ -14,7 +14,11 @@ use crate::{
Extension,
},
utils::{
self, io::lock_and_flush_output_stdio, is_path_stdin, logger::{info, info_accessible}, nice_directory_display, user_wants_to_continue
self,
io::lock_and_flush_output_stdio,
is_path_stdin,
logger::{info, info_accessible},
nice_directory_display, user_wants_to_continue,
},
QuestionAction, QuestionPolicy, BUFFER_CAPACITY,
};

View File

@ -19,19 +19,18 @@ pub fn is_path_stdin(path: &Path) -> bool {
path.as_os_str() == "-"
}
pub fn resolve_path(path: &Path, question_policy: QuestionPolicy) -> crate::Result<Option<PathBuf>> {
if path.exists() {
match user_wants_to_overwrite(path, question_policy)? {
FileConflitOperation::Cancel => return Ok(None),
FileConflitOperation::Cancel => Ok(None),
FileConflitOperation::Overwrite => {
remove_file_or_dir(path)?;
Ok(Some(path.to_path_buf()))
},
}
FileConflitOperation::Rename => {
let renamed_path = rename_for_available_filename(path);
Ok(Some(renamed_path))
},
}
}
} else {
Ok(Some(path.to_path_buf()))
@ -64,10 +63,10 @@ pub fn rename_or_increment_filename(path: &Path) -> PathBuf {
Some((base, number_str)) if number_str.chars().all(char::is_numeric) => {
let number = number_str.parse::<u32>().unwrap_or(0);
format!("{}_{}", base, number + 1)
},
}
_ => format!("{}_1", filename),
};
let mut new_path = parent.join(new_filename);
if !extension.is_empty() {
new_path.set_extension(extension);

View File

@ -18,10 +18,13 @@ pub use self::{
EscapedPathDisplay,
},
fs::{
cd_into_same_dir_as, resolve_path, create_dir_if_non_existent, is_path_stdin, remove_file_or_dir,
try_infer_extension, rename_for_available_filename
cd_into_same_dir_as, create_dir_if_non_existent, is_path_stdin, remove_file_or_dir,
rename_for_available_filename, resolve_path, try_infer_extension,
},
question::{
ask_to_create_file, user_wants_to_continue, user_wants_to_overwrite, FileConflitOperation, QuestionAction,
QuestionPolicy,
},
question::{ask_to_create_file, user_wants_to_continue, user_wants_to_overwrite, FileConflitOperation, QuestionAction, QuestionPolicy},
utf8::{get_invalid_utf8_paths, is_invalid_utf8},
};

View File

@ -56,7 +56,6 @@ pub fn user_wants_to_overwrite(path: &Path, question_policy: QuestionPolicy) ->
}
}
/// Check if QuestionPolicy flags were set, otherwise, ask user if they want to overwrite.
pub fn ask_file_conflict_operation(path: &Path) -> Result<FileConflitOperation> {
use FileConflitOperation as Op;
@ -90,12 +89,12 @@ pub fn ask_to_create_file(path: &Path, question_policy: QuestionPolicy) -> Resul
FileConflitOperation::Overwrite => {
utils::remove_file_or_dir(path)?;
Ok(Some(fs::File::create(path)?))
},
}
FileConflitOperation::Cancel => Ok(None),
FileConflitOperation::Rename => {
let renamed_file_path = utils::rename_for_available_filename(path);
Ok(Some(fs::File::create(renamed_file_path)?))
},
}
}
}
Err(e) => Err(Error::from(e)),
@ -120,17 +119,13 @@ pub fn user_wants_to_continue(
ChoicePrompt::new(
format!("Do you want to {action} {path}?"),
[
("yes", true, *colors::GREEN),
("no", false, *colors::RED),
],
[("yes", true, *colors::GREEN), ("no", false, *colors::RED)],
)
.ask()
}
}
}
/// Choise dialog for end user with [option1/option2/...] question.
///
/// If the placeholder is found in the prompt text, it will be replaced to form the final message.
@ -176,25 +171,33 @@ impl<'a, T: Default> ChoicePrompt<'a, T> {
// Ask the same question to end while no valid answers are given
loop {
let choice_prompt = if is_running_in_accessible_mode() {
self
.choises
self.choises
.iter()
.map(|choise| format!("{}{}{}", choise.color, choise.label, *colors::RESET))
.collect::<Vec<_>>()
.join("/")
.join("/")
} else {
let choises = self
.choises
.iter()
.map(|choise| format!("{}{}{}", choise.color, choise.label.chars().nth(0).expect("dev error"), *colors::RESET))
.map(|choise| {
format!(
"{}{}{}",
choise.color,
choise
.label
.chars()
.nth(0)
.expect("dev error, should be reported, we checked this won't happen"),
*colors::RESET
)
})
.collect::<Vec<_>>()
.join("/");
format!("[{}]", choises)
};
// TODO: use accessible mode
eprintln!("{} {}", message, choice_prompt);
let mut answer = String::new();
@ -213,12 +216,12 @@ impl<'a, T: Default> ChoicePrompt<'a, T> {
answer.make_ascii_lowercase();
let answer = answer.trim();
let choosed_index = self
let chosen_index = self
.choises
.iter()
.position(|choise| answer == &choise.label[0..answer.len()]);
if let Some(i) = choosed_index {
if let Some(i) = chosen_index {
return Ok(self.choises.remove(i).value);
}
}