Fix validators (#237)

* Fix file extension checks not working

* Fix validators not validating files of a non-matching extension
This commit is contained in:
Geometrically authored and GitHub committed 2021-08-22 09:11:38 -07:00
1 parent 4073a7abc3
commit fdf8845a2f
2 files changed
+14 -5

No files matched your search

+13 -4
View File
@@ -68,9 +68,10 @@ pub fn validate_file(
let reader = std::io::Cursor::new(data);
let mut zip = zip::ZipArchive::new(reader)?;
let mut visited = false;
for validator in &VALIDATORS {
if validator.get_file_extensions().contains(&file_extension)
&& validator.get_project_types().contains(&project_type)
if
validator.get_project_types().contains(&project_type)
&& loaders
.iter()
.any(|x| validator.get_supported_loaders().contains(&&*x.0))
@@ -80,11 +81,19 @@ pub fn validate_file(
validator.get_supported_game_versions(),
)
{
return validator.validate(&mut zip);
if validator.get_file_extensions().contains(&file_extension) {
return validator.validate(&mut zip);
} else {
visited = true;
}
}
}
Ok(ValidationResult::Pass)
if visited {
Err(ValidationError::InvalidInputError(format!("File extension {} is invalid for input file", file_extension)))
} else {
Ok(ValidationResult::Pass)
}
}
fn game_version_supported(