diff --git a/src/validate.rs b/src/validate.rs index 55ae5c2..b9120c6 100644 --- a/src/validate.rs +++ b/src/validate.rs @@ -8,30 +8,30 @@ pub fn validate(verbosity: u8, config: util::config::Config) { let in_suffix = "in"; //TODO make this configurable? let out_suffix = "out"; // get list of all file names in input/output - let in_files: Vec = get_dir_files(&config.input_path).expect("Failed to read the input directory contents"); - let out_files: Vec = get_dir_files(&config.output_path).expect("Failed to read the output directory contents"); + let in_files: Vec = get_dir_files(&config.input_path, verbosity).expect("Failed to read the input directory contents"); + let out_files: Vec = get_dir_files(&config.output_path, verbosity).expect("Failed to read the output directory contents"); let mismatch: Vec<(PathBuf, PathBuf)>; // check the files for valid suffixes - let invalid_suffix_in: Vec = collect_invalid(&in_files, in_suffix); - let invalid_suffix_out: Vec = collect_invalid(&out_files, out_suffix); + let invalid_suffix_in: Vec = collect_invalid(&in_files, in_suffix, verbosity); + let invalid_suffix_out: Vec = collect_invalid(&out_files, out_suffix, verbosity); // print the delinquints if invalid_suffix_in.len() > 0 { - print_invalid_suffixes(invalid_suffix_in, in_suffix); + print_invalid_suffixes(invalid_suffix_in, in_suffix, verbosity); } if invalid_suffix_out.len() > 0 { - print_invalid_suffixes(invalid_suffix_out, out_suffix); + print_invalid_suffixes(invalid_suffix_out, out_suffix, verbosity); } // make sure each has a match - let in_to_out: (Vec<(PathBuf, PathBuf)>, Vec) = map_files(in_files, out_files, &config); - let invalid: Vec<(PathBuf, PathBuf)> = check_mappings(in_to_out.0, in_suffix, out_suffix); + let in_to_out: (Vec<(PathBuf, PathBuf)>, Vec) = map_files(in_files, out_files, &config, verbosity); + let invalid: Vec<(PathBuf, PathBuf)> = check_mappings(in_to_out.0, in_suffix, out_suffix, verbosity); - print_unmached(in_to_out.1); - print_invalid_pairs(invalid, in_suffix, out_suffix); + print_unmached(in_to_out.1, verbosity); + print_invalid_pairs(invalid, in_suffix, out_suffix, verbosity); } /** @@ -44,7 +44,7 @@ pub fn validate(verbosity: u8, config: util::config::Config) { * - A vector containing the file mappings from input to output (if found) * - A vector containing paths for which a match was not found */ -fn map_files(in_files: Vec, out_files: Vec, config: &util::config::Config) -> (Vec<(PathBuf, PathBuf)>, Vec) { +fn map_files(in_files: Vec, out_files: Vec, config: &util::config::Config, verbosity: u8) -> (Vec<(PathBuf, PathBuf)>, Vec) { let mut res: (Vec<(PathBuf, PathBuf)>, Vec) = (vec![], vec![]); // get the prefixes @@ -122,7 +122,7 @@ fn map_files(in_files: Vec, out_files: Vec, config: &util::con * * @return A vector of tuples with (input, output) PathBufs */ -fn check_mappings(mappings: Vec<(PathBuf, PathBuf)>, in_suffix: &str, out_suffix: &str) -> Vec<(PathBuf, PathBuf)> { +fn check_mappings(mappings: Vec<(PathBuf, PathBuf)>, in_suffix: &str, out_suffix: &str, verbosity: u8) -> Vec<(PathBuf, PathBuf)> { let mut res: Vec<(PathBuf, PathBuf)> = vec![]; for tup in &mappings { @@ -142,7 +142,7 @@ fn check_mappings(mappings: Vec<(PathBuf, PathBuf)>, in_suffix: &str, out_suffix * * @return A vector of paths with invalid suffixes */ -fn collect_invalid(files: &Vec, suf: &str) -> Vec { +fn collect_invalid(files: &Vec, suf: &str, verbosity: u8) -> Vec { let mut res: Vec = vec![]; for file in files { @@ -161,7 +161,7 @@ fn collect_invalid(files: &Vec, suf: &str) -> Vec { * * @returns Result with a Vector of PathBuf or error */ -fn get_dir_files(path: &PathBuf) -> Result, &'static str> { +fn get_dir_files(path: &PathBuf, verbosity: u8) -> Result, &'static str> { let mut res: Vec = vec![]; // get the readout of the path for error handling @@ -188,7 +188,7 @@ fn get_dir_files(path: &PathBuf) -> Result, &'static str> { * @param files: A vector containing the invalid path names * @param exp: The expected suffix */ -fn print_invalid_suffixes(files: Vec, exp: &str) { +fn print_invalid_suffixes(files: Vec, exp: &str, verbosity: u8) { println!("Invalid suffixes detected 😱:" ); println!("Current => Suggested"); for mut file in files { @@ -210,7 +210,7 @@ fn print_invalid_suffixes(files: Vec, exp: &str) { * * @param unmatched: Unmatched files */ -fn print_unmached(unmatched: Vec) { +fn print_unmached(unmatched: Vec, verbosity: u8) { } @@ -219,7 +219,7 @@ fn print_unmached(unmatched: Vec) { * * @param invalid: A vector of invalid pairs */ -fn print_invalid_pairs(invalid: Vec<(PathBuf, PathBuf)>, in_suffix: &str, out_suffix: &str) { +fn print_invalid_pairs(invalid: Vec<(PathBuf, PathBuf)>, in_suffix: &str, out_suffix: &str, verbosity: u8) { } @@ -285,12 +285,12 @@ mod tests { #[rstest] fn test_collect_invalid(files: Vec) { let suffix = "suf"; - let invalid = collect_invalid(&files, suffix); + let invalid = collect_invalid(&files, suffix, 2); println!("{:?}", invalid); // visual testing for the print formatting - print_invalid_suffixes(invalid.clone(), suffix); + print_invalid_suffixes(invalid.clone(), suffix, 2); assert!(!invalid.contains(&files[0])); assert!(!invalid.contains(&files[1])); @@ -303,7 +303,7 @@ mod tests { #[rstest] fn test_map(in_files: Vec, out_files: Vec, config: util::config::Config) { - let mappings: (Vec<(PathBuf, PathBuf)>, Vec) = map_files(in_files.clone(), out_files.clone(), &config); + let mappings: (Vec<(PathBuf, PathBuf)>, Vec) = map_files(in_files.clone(), out_files.clone(), &config, 2); // print_unmached(mappings.1); let test = (in_files[0].clone(), out_files[0].clone()); @@ -322,9 +322,9 @@ mod tests { fn test_check_valid_mappings(in_files: Vec, out_files: Vec, config: util::config::Config) { let in_suffix = "in"; let out_suffix = "out"; - let invalid: Vec<(PathBuf, PathBuf)> = check_mappings(map_files(in_files.clone(), out_files.clone(), &config).0, in_suffix, out_suffix); + 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); + print_invalid_pairs(invalid.clone(), in_suffix, out_suffix, 2); 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())));