@@ -91,35 +91,32 @@ class InstrumentationNamingPlugin : Plugin<Project> {
9191 return @parentLoop
9292 }
9393
94- // Check if this directory has a build.gradle file
95- // If it does, it's a leaf instrumentation module
9694 val hasBuildFile = parentDir.listFiles()?.any {
9795 it.name == " build.gradle" || it.name == " build.gradle.kts"
9896 } ? : false
9997
100- if (hasBuildFile) {
101- // This is a leaf module, validate only the version/common suffix requirement
102- if (parentName !in exclusions) {
98+ // Check for subdirectories that are modules
99+ val subModules = parentDir.listFiles { file -> file.isDirectory }
100+ ?.filter { subDir ->
101+ val name = subDir.name
102+ // Skip build and other non-module directories
103+ name !in setOf (" build" , " src" , " .gradle" ) &&
104+ // Check if it has a build file
105+ subDir.listFiles()?.any { it.name == " build.gradle" || it.name == " build.gradle.kts" } == true
106+ } ? : emptyList()
107+
108+ if (subModules.isEmpty()) {
109+ // No submodules, this is a leaf module
110+ if (hasBuildFile && parentName !in exclusions) {
103111 validateLeafModuleName(parentName, parentDir.relativeTo(instrumentationsDir).path, suffixes)?.let {
104112 violations.add(it)
105113 }
106114 }
107115 } else {
108- // This directory contains sub-modules, check each one
109- parentDir.listFiles { file -> file.isDirectory }?. forEach moduleLoop@ { moduleDir ->
116+ // Has submodules, validate each one
117+ subModules. forEach { moduleDir ->
110118 val moduleName = moduleDir.name
111-
112- // Skip build and other non-module directories
113- if (moduleName in setOf (" build" , " src" , " .gradle" )) {
114- return @moduleLoop
115- }
116-
117- // Check if this is actually a module (has build.gradle)
118- val hasModuleBuildFile = moduleDir.listFiles()?.any {
119- it.name == " build.gradle" || it.name == " build.gradle.kts"
120- } ? : false
121-
122- if (hasModuleBuildFile && moduleName !in exclusions) {
119+ if (moduleName !in exclusions) {
123120 validateModuleName(moduleName, parentName, moduleDir.relativeTo(instrumentationsDir).path, suffixes)?.let {
124121 violations.add(it)
125122 }
0 commit comments