|
|
|
|
@ -14,29 +14,23 @@ $config = new Config();
|
|
|
|
|
$config
|
|
|
|
|
->setParallelConfig(ParallelConfigFactory::detect())
|
|
|
|
|
->getFinder()
|
|
|
|
|
->ignoreVCSIgnored(true)
|
|
|
|
|
->exclude('config')
|
|
|
|
|
->exclude('data')
|
|
|
|
|
->notPath('3rdparty')
|
|
|
|
|
->notPath('build/integration/vendor')
|
|
|
|
|
->notPath('build/lib')
|
|
|
|
|
->notPath('build/node_modules')
|
|
|
|
|
->notPath('build/stubs')
|
|
|
|
|
->notPath('composer')
|
|
|
|
|
->notPath('node_modules')
|
|
|
|
|
->notPath('vendor')
|
|
|
|
|
->in('apps')
|
|
|
|
|
->exclude('3rdparty')
|
|
|
|
|
->exclude('build/stubs')
|
|
|
|
|
->exclude('composer')
|
|
|
|
|
->in(__DIR__);
|
|
|
|
|
|
|
|
|
|
// Ignore additional app directories
|
|
|
|
|
$rootDir = new \DirectoryIterator(__DIR__);
|
|
|
|
|
foreach ($rootDir as $node) {
|
|
|
|
|
if (str_starts_with($node->getFilename(), 'apps')) {
|
|
|
|
|
$return = shell_exec('git check-ignore ' . escapeshellarg($node->getFilename() . '/'));
|
|
|
|
|
$ignoredEntries = shell_exec('git status --porcelain --ignored ' . escapeshellarg(__DIR__));
|
|
|
|
|
$ignoredEntries = explode("\n", $ignoredEntries);
|
|
|
|
|
$ignoredEntries = array_filter($ignoredEntries, static fn (string $line) => str_starts_with($line, '!! '));
|
|
|
|
|
$ignoredEntries = array_map(static fn (string $line) => substr($line, 3), $ignoredEntries);
|
|
|
|
|
$ignoredEntries = array_values($ignoredEntries);
|
|
|
|
|
|
|
|
|
|
if ($return !== null) {
|
|
|
|
|
$config->getFinder()->exclude($node->getFilename());
|
|
|
|
|
}
|
|
|
|
|
foreach ($ignoredEntries as $ignoredEntry) {
|
|
|
|
|
if (str_ends_with($ignoredEntry, '/')) {
|
|
|
|
|
$config->getFinder()->exclude($ignoredEntry);
|
|
|
|
|
} else {
|
|
|
|
|
$config->getFinder()->notPath($ignoredEntry);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|