Check for conflicting plugin names at build-time

This commit is contained in:
Gary Tierney
2017-06-18 21:37:44 +01:00
parent 3f714831c7
commit 1019cc8e6a
+25
View File
@@ -119,6 +119,18 @@ def pluginDefinitions = pluginTree.matching {
include '**/meta.toml'
}
class PluginScriptFile {
def scriptFileName
def pluginDir
PluginScriptFile(scriptFileName, pluginDir) {
this.scriptFileName = scriptFileName
this.pluginDir = pluginDir
}
}
def pluginFiles = new ArrayList<PluginScriptFile>()
pluginDefinitions.each { file ->
def meta = new Toml()
meta.read(file.absoluteFile)
@@ -156,6 +168,19 @@ pluginDefinitions.each { file ->
}
}
scripts.files.forEach {
def scriptFileName = it.getName()
//@todo - also compare package
def existingFile = pluginFiles.find { it.scriptFileName == scriptFileName }
if (existingFile != null) {
throw new GradleException("Duplicate script file found named ${scriptFileName} in ${pluginFolder}, " +
"also exists in ${existingFile.pluginDir}")
}
pluginFiles.add(new PluginScriptFile(scriptFileName, pluginFolder))
}
def pluginData = new PluginBuildData(normalizedName, mainSources, testSources, scripts, dependencies)
pluginMap.put(normalizedName, pluginData)
}