1
0

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
2021-08-22 09:11:38 -07:00
committed by GitHub
parent 4073a7abc3
commit fdf8845a2f
2 changed files with 14 additions and 5 deletions

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(