Refactored validation build script

This commit is contained in:
Nav
2021-06-05 22:41:37 +01:00
parent b1ac652a7f
commit 733e727783
2 changed files with 34 additions and 57 deletions

View File

@@ -1,57 +0,0 @@
<?php
require_once __DIR__ . "/TargetDescriptionFile.php";
const TDF_DIR_PATH = __DIR__ . "/../../resources/TargetDescriptionFiles";
/**
* @param string $dirPath
* @return SplFileInfo[]
*/
function getXmlFiles(string $dirPath): array
{
$output = [];
$directory = new DirectoryIterator($dirPath);
foreach ($directory as $entry) {
if ($entry->isFile() && $entry->getExtension() == 'xml') {
$output[] = clone $entry;
} else if ($entry->isDir() && !$entry->isDot()) {
$output = array_merge($output, getXmlFiles($entry->getPathname()));
}
}
return $output;
}
$xmlFiles = getXmlFiles(TDF_DIR_PATH);
$failedValidationCount = 0;
foreach ($xmlFiles as $xmlFile) {
$targetDescriptionFile = new TargetDescriptionFile($xmlFile->getPathname());
$validationFailures = $targetDescriptionFile->validate();
if (!empty($validationFailures)) {
$failedValidationCount++;
print "\033[31m";
print "Validation for " . $xmlFile->getFilename() . " failed.\n";
print "Full path: " . $xmlFile->getRealPath() . "\n";
print count($validationFailures) . " errors found:\n";
print implode("\n", $validationFailures);
print "\n\n";
print "\033[0m";
} else {
print "\033[32m";
print "Validation for " . $xmlFile->getFilename() . " passed.\n";
print "\033[0m";
}
}
print "\n\n";
print "Validated " . count($xmlFiles) . " TDFs. ";
print (($failedValidationCount > 0) ? "\033[31m" : "\033[32m");
print $failedValidationCount . " failures." . "\033[0m" . "\n";
echo "Done\n";

View File

@@ -0,0 +1,34 @@
<?php
namespace Bloom\BuildScripts;
require_once __DIR__ . "/TargetDescriptionFiles/Factory.php";
$avr8Tdfs = TargetDescriptionFiles\Factory::loadAvr8Tdfs();
$failedValidationCount = 0;
foreach ($avr8Tdfs as $targetDescriptionFile) {
$validationFailures = $targetDescriptionFile->validate();
if (!empty($validationFailures)) {
$failedValidationCount++;
print "\033[31m";
print "Validation for " . $targetDescriptionFile->filePath . " failed.\n";
print count($validationFailures) . " errors found:\n";
print implode("\n", $validationFailures);
print "\n\n";
print "\033[0m";
} else {
print "\033[32m";
print "Validation for " . $targetDescriptionFile->filePath . " passed.\n";
print "\033[0m";
}
}
print "\n\n";
print "Validated " . count($avr8Tdfs) . " TDFs. ";
print (($failedValidationCount > 0) ? "\033[31m" : "\033[32m");
print $failedValidationCount . " failures." . "\033[0m" . "\n";
echo "Done\n";