OpenRCT2/scripts/stats/count-rct-globals.php
Margen67 3188865313
Script improvements (#14452)
shebang:
 Move parameters from set.
 Add newline after for consistency.
curl:
 Add -f;
  Prevents output on error.
 Use -O where applicable;
  -o with the same filename as the URL is pointless.
 Add -S after -s:
  Makes curl still error despite being silent.
build-symbols:
 Add zip fallback.
get-discord-rpc:
 Move git clone parameters before repository for readability.
 Use --depth 1 to speed up cloning.
install-nsis:
 Use ProgramData environment variable.
build-appimage-docker.sh:
 Add -e to docker run.
 Run script directly.
build-appimage.sh:
 Make if more consistent.
Remove unused Travis scripts.
setenv:
 unset instead of blanking variables.
vstool.cmd:
 Use ProgramFiles(x86) environment variable.
2021-04-12 19:01:15 -03:00

49 lines
1.1 KiB
PHP
Executable file

#!/usr/bin/env php
<?php
exec('grep -E "(RCT2_ADDRESS|RCT2_GLOBAL)[\(\s]+(0x[0-9a-zA-Z]+|[A-Z0-9_]+)" -r -o .', $lines);
$addressFiles = [];
$lastFile = null;
$count = [];
$totalCount = 0;
foreach ($lines as $line) {
$fileName = $lastFile;
if (strpos($line, ':') !== false) {
$data = explode(':', $line);
$fileName = $data[0];
$line = $data[1];
$lastFile = $fileName;
}
$line = preg_replace_callback('/0x0+([0-9A-Fa-f])/', function ($matches) {
return '0x' . strtoupper($matches[1]);
}, $line);
$line = preg_replace('/RCT2_(GLOBAL|ADDRESS)[\(\s]+/', '', $line);
if (!isset($addressFiles[$line])) {
$addressFiles[$line] = [];
}
$addressFiles[$line][] = $fileName;
if (!isset($count[$line])) {
$count[$line] = 0;
}
$count[$line]++;
$totalCount++;
}
if (isset($argv[1]) && $argv[1] === '-v') {
foreach ($count as $name => $c) {
printf("%s\t%d\t%s\n", $name, $c, implode(", ", array_unique($addressFiles[$name])));
}
echo "\n";
}
printf("Found %d usages of RCT2_ADDRESS and RCT2_GLOBAL (%d distinct)\n", $totalCount, count($count));