Skip to content

Commit d51e0b8

Browse files
authored
fix(CoreVersionRequirement): Ensure sniff is only run on project info.yml files (#3133361 by Arkener)
1 parent 5c7b389 commit d51e0b8

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed

coder_sniffer/DrupalPractice/Sniffs/InfoFiles/CoreVersionRequirementSniff.php

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,18 @@ public function register()
4949
*/
5050
public function process(File $phpcsFile, $stackPtr)
5151
{
52-
$fileExtension = strtolower(substr($phpcsFile->getFilename(), -9));
52+
$filename = $phpcsFile->getFilename();
53+
$fileExtension = strtolower(substr($filename, -9));
5354
if ($fileExtension !== '.info.yml') {
5455
return ($phpcsFile->numTokens + 1);
5556
}
5657

58+
// Exclude config files which might contain the info.yml extension.
59+
$filenameWithoutExtension = substr($filename, 0, -9);
60+
if (strpos($filenameWithoutExtension, '.') !== false) {
61+
return ($phpcsFile->numTokens + 1);
62+
}
63+
5764
$contents = file_get_contents($phpcsFile->getFilename());
5865
try {
5966
$info = Yaml::parse($contents);
@@ -62,6 +69,11 @@ public function process(File $phpcsFile, $stackPtr)
6269
return ($phpcsFile->numTokens + 1);
6370
}
6471

72+
// Check if the type key is set, to verify if we're inside a project info.yml file.
73+
if (isset($info['type']) === false) {
74+
return ($phpcsFile->numTokens + 1);
75+
}
76+
6577
// Test modules can omit the core_version_requirement key.
6678
if (isset($info['package']) === true && $info['package'] === 'Testing') {
6779
return ($phpcsFile->numTokens + 1);

coder_sniffer/DrupalPractice/Test/InfoFiles/CoreVersionRequirementUnitTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ protected function getTestFiles($testFileBase): array
6161
return [
6262
__DIR__.'/core_version.info.yml',
6363
__DIR__.'/core_version_test.info.yml',
64+
__DIR__.'/core_version.config.info.yml',
6465
];
6566

6667
}//end getTestFiles()
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
type: coder
2+
description: 'This is a configuration file.'

0 commit comments

Comments
 (0)