diff --git a/src/validate.rs b/src/validate.rs index f6f9188..2594df4 100644 --- a/src/validate.rs +++ b/src/validate.rs @@ -1,4 +1,5 @@ -use std::{path::{PathBuf, Path, Components, Component}, fs, collections::{HashMap, VecDeque}, borrow::BorrowMut}; +use std::{collections::VecDeque, fs}; +use std::path::{PathBuf, Component}; use crate::util; use crate::log; @@ -21,11 +22,11 @@ pub fn validate(verbosity: u8, config: util::config::Config) { // print the delinquints if invalid_suffix_in.len() > 0 { - print_invalid_suffixes(invalid_suffix_in, in_suffix, verbosity); + print_invalid_suffixes(invalid_suffix_in, in_suffix); } if invalid_suffix_out.len() > 0 { - print_invalid_suffixes(invalid_suffix_out, out_suffix, verbosity); + print_invalid_suffixes(invalid_suffix_out, out_suffix); } // make sure each has a match @@ -34,8 +35,8 @@ pub fn validate(verbosity: u8, config: util::config::Config) { log!(1, verbosity, "LOG 1:Verifying file matches"); let invalid: Vec<(PathBuf, PathBuf)> = check_mappings(in_to_out.0, in_suffix, out_suffix, verbosity); - print_unmached(in_to_out.1, verbosity); - print_invalid_pairs(invalid, in_suffix, out_suffix, verbosity); + print_unmached(in_to_out.1); + print_invalid_pairs(invalid, in_suffix, out_suffix); } /** @@ -213,10 +214,10 @@ fn get_dir_files(path: &PathBuf, verbosity: u8) -> Result, &'static * @param files: A vector containing the invalid path names * @param exp: The expected suffix */ -fn print_invalid_suffixes(files: Vec, exp: &str, verbosity: u8) { +fn print_invalid_suffixes(files: Vec, exp: &str) { println!("Invalid suffixes detected 😱:" ); println!("Current => Suggested"); - for mut file in files { + for file in files { let initial = match file.to_str() { Some(x) => x, _ => panic!("Failed to load the file"), @@ -235,8 +236,12 @@ fn print_invalid_suffixes(files: Vec, exp: &str, verbosity: u8) { * * @param unmatched: Unmatched files */ -fn print_unmached(unmatched: Vec, verbosity: u8) { +fn print_unmached(unmatched: Vec) { + println!("We were unable to find matches for the following files:"); + for file in unmatched { + println!("{}", file.to_str().expect("Failed to read file name")); + } } /** @@ -244,8 +249,19 @@ fn print_unmached(unmatched: Vec, verbosity: u8) { * * @param invalid: A vector of invalid pairs */ -fn print_invalid_pairs(invalid: Vec<(PathBuf, PathBuf)>, in_suffix: &str, out_suffix: &str, verbosity: u8) { +fn print_invalid_pairs(invalid: Vec<(PathBuf, PathBuf)>, in_suffix: &str, out_suffix: &str) { + println!("The following files have problematic mappings, please validate their suffixes and paths:"); + for pair in invalid { + println!("({} {}): $${}$$ => $${}$$ should be $${}$$ => $${}$$", + pair.0.to_str().expect("Failed to read file name"), + pair.1.to_str().expect("Failed to read file name"), + pair.0.extension().expect("Failed to read file name").to_str().expect("Failed to convert"), + pair.1.extension().expect("Failed to read file name").to_str().expect("Failed to convert"), + in_suffix, + out_suffix, + ); + } } @@ -315,7 +331,7 @@ mod tests { println!("{:?}", invalid); // visual testing for the print formatting - print_invalid_suffixes(invalid.clone(), suffix, 2); + print_invalid_suffixes(invalid.clone(), suffix); assert!(!invalid.contains(&files[0])); assert!(!invalid.contains(&files[1])); @@ -349,7 +365,7 @@ mod tests { let out_suffix = "out"; let invalid: Vec<(PathBuf, PathBuf)> = check_mappings(map_files(in_files.clone(), out_files.clone(), &config, 2).0, in_suffix, out_suffix, 2); - print_invalid_pairs(invalid.clone(), in_suffix, out_suffix, 2); + print_invalid_pairs(invalid.clone(), in_suffix, out_suffix); assert!(&invalid.contains(&(in_files[0].clone(), out_files[0].clone()))); assert!(&invalid.contains(&(in_files[1].clone(), out_files[1].clone()))); assert!(!&invalid.contains(&(in_files[2].clone(), out_files[2].clone())));