2017-05-16 17:03:37 +00:00
|
|
|
#!/usr/bin/env php
|
2017-05-16 14:24:30 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
$dirs = array_filter(glob('*'), 'is_dir');
|
|
|
|
$testHelper = new TestHelper();
|
|
|
|
|
|
|
|
foreach ($dirs as $dir) {
|
|
|
|
$testHelper->testDirectory($dir);
|
|
|
|
}
|
|
|
|
|
|
|
|
$errors = $testHelper->errors;
|
|
|
|
if (count($errors) > 0) {
|
|
|
|
foreach($errors as $dir => $scriptErrors) {
|
|
|
|
print "Directory '$dir'\n";
|
|
|
|
|
|
|
|
foreach($scriptErrors as $error) {
|
|
|
|
print " $error\n";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
exit(1);
|
|
|
|
}
|
|
|
|
|
2017-05-16 17:03:37 +00:00
|
|
|
print "No errors were found\n";
|
|
|
|
exit(0);
|
2017-05-16 14:24:30 +00:00
|
|
|
|
|
|
|
class TestHelper {
|
|
|
|
public $errors = array();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Tests the files in a directory
|
|
|
|
*/
|
|
|
|
public function testDirectory($dir) {
|
|
|
|
$errors = array();
|
|
|
|
$jsonData = file_get_contents($dir . "/info.json");
|
|
|
|
$data = json_decode($jsonData, true);
|
|
|
|
|
|
|
|
if ($data["name"] == "") {
|
|
|
|
$errors[] = "No name was entered!";
|
|
|
|
}
|
|
|
|
|
2017-05-16 17:00:14 +00:00
|
|
|
$identifier = $data["identifier"];
|
|
|
|
if ($identifier == "") {
|
2017-05-16 14:24:30 +00:00
|
|
|
$errors[] = "No identifier was entered!";
|
2017-05-16 17:03:37 +00:00
|
|
|
} elseif (preg_match('/[^a-z0-9\-_]/', $identifier)) {
|
2017-05-16 17:00:14 +00:00
|
|
|
$errors[] = "Invalid charactes were found in identifier '$identifier'!";
|
2017-05-16 14:24:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
if ($data["description"] == "") {
|
|
|
|
$errors[] = "No description was entered!";
|
|
|
|
}
|
|
|
|
|
|
|
|
$script = $data["script"];
|
|
|
|
if ($script == "") {
|
|
|
|
$errors[] = "No script was entered!";
|
|
|
|
} elseif (!file_exists($dir . "/" . $script)) {
|
|
|
|
$errors[] = "Script '$script' doesn't exist!";
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($data["version"] == "") {
|
|
|
|
$errors[] = "No version was entered!";
|
|
|
|
}
|
|
|
|
|
|
|
|
if (count($errors) > 0) {
|
|
|
|
$this->errors[$dir] = $errors;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|