diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2019-08-12 10:27:08 +0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2019-08-12 10:27:22 +0200 |
commit | 7c4995176916697bbc84f854f844b2ead7f5fa0c (patch) | |
tree | cf1b93d88ec8bb98d72d0e4de62e128379a25b56 /scripts | |
parent | 434f5329f70b6b1bfb644db20f09b43b7212410c (diff) | |
download | php-git-7c4995176916697bbc84f854f844b2ead7f5fa0c.tar.gz |
Support regenerating all stubs
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/dev/gen_stub.php | 36 |
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 { |