diff --git a/build/generate-registry-annotations.php b/build/generate-registry-annotations.php index 827ba4880..946f62605 100644 --- a/build/generate-registry-annotations.php +++ b/build/generate-registry-annotations.php @@ -81,30 +81,24 @@ function generateMethodAnnotations(string $namespaceName, array $members) : stri return implode("\n", $lines); } -require dirname(__DIR__) . '/vendor/autoload.php'; - -/** @var string $file */ -foreach(new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($argv[1], \FilesystemIterator::SKIP_DOTS | \FilesystemIterator::CURRENT_AS_PATHNAME)) as $file){ - if(substr($file, -4) !== ".php"){ - continue; - } +function processFile(string $file) : void{ $contents = file_get_contents($file); if($contents === false){ throw new \RuntimeException("Failed to get contents of $file"); } if(preg_match("/(*ANYCRLF)^namespace (.+);$/m", $contents, $matches) !== 1 || preg_match('/(*ANYCRLF)^((final|abstract)\s+)?class /m', $contents) !== 1){ - continue; + return; } $shortClassName = basename($file, ".php"); $className = $matches[1] . "\\" . $shortClassName; if(!class_exists($className)){ - continue; + return; } $reflect = new \ReflectionClass($className); $docComment = $reflect->getDocComment(); if($docComment === false || preg_match("/(*ANYCRLF)^\s*\*\s*@generate-registry-docblock$/m", $docComment) !== 1){ - continue; + return; } echo "Found registry in $file\n"; @@ -118,3 +112,18 @@ foreach(new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($argv[1], echo "No changes made to file $file\n"; } } + +require dirname(__DIR__) . '/vendor/autoload.php'; + +if(is_dir($argv[1])){ + /** @var string $file */ + foreach(new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($argv[1], \FilesystemIterator::SKIP_DOTS | \FilesystemIterator::CURRENT_AS_PATHNAME)) as $file){ + if(substr($file, -4) !== ".php"){ + continue; + } + + processFile($file); + } +}else{ + processFile($argv[1]); +}