summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2019-08-12 10:27:08 +0200
committerNikita Popov <nikita.ppv@gmail.com>2019-08-12 10:27:22 +0200
commit7c4995176916697bbc84f854f844b2ead7f5fa0c (patch)
treecf1b93d88ec8bb98d72d0e4de62e128379a25b56 /scripts
parent434f5329f70b6b1bfb644db20f09b43b7212410c (diff)
downloadphp-git-7c4995176916697bbc84f854f844b2ead7f5fa0c.tar.gz
Support regenerating all stubs
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/dev/gen_stub.php36
1 files changed, 25 insertions, 11 deletions
diff --git a/scripts/dev/gen_stub.php b/scripts/dev/gen_stub.php
index 48b89da113..6caffda14d 100755
--- a/scripts/dev/gen_stub.php
+++ b/scripts/dev/gen_stub.php
@@ -13,20 +13,34 @@ try {
exit(1);
}
-if ($argc < 2) {
- die("Usage: php gen_stub.php foobar.stub.php\n");
+if ($argc >= 2) {
+ // Generate single file.
+ processStubFile($argv[1]);
+} else {
+ // Regenerate all stub files we can find.
+ $it = new RecursiveIteratorIterator(
+ new RecursiveDirectoryIterator('.'),
+ RecursiveIteratorIterator::LEAVES_ONLY
+ );
+ foreach ($it as $file) {
+ $pathName = $file->getPathName();
+ if (preg_match('/\.stub\.php$/', $pathName)) {
+ processStubFile($pathName);
+ }
+ }
}
-$stubFile = $argv[1];
-$arginfoFile = str_replace('.stub.php', '', $stubFile) . '_arginfo.h';
+function processStubFile(string $stubFile) {
+ $arginfoFile = str_replace('.stub.php', '', $stubFile) . '_arginfo.h';
-try {
- $funcInfos = parseStubFile($stubFile);
- $arginfoCode = generateArgInfoCode($funcInfos);
- file_put_contents($arginfoFile, $arginfoCode);
-} catch (Exception $e) {
- echo "Caught {$e->getMessage()} while processing $stubFile\n";
- exit(1);
+ try {
+ $funcInfos = parseStubFile($stubFile);
+ $arginfoCode = generateArgInfoCode($funcInfos);
+ file_put_contents($arginfoFile, $arginfoCode);
+ } catch (Exception $e) {
+ echo "Caught {$e->getMessage()} while processing $stubFile\n";
+ exit(1);
+ }
}
class Type {