Skip to content

Commit 4a86a6f

Browse files
committed
Fix module recursion
1 parent d1c4e5e commit 4a86a6f

File tree

1 file changed

+16
-19
lines changed

1 file changed

+16
-19
lines changed

buildSrc/src/main/kotlin/datadog/gradle/plugin/naming/InstrumentationNamingPlugin.kt

Lines changed: 16 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)