diff --git a/game/plugins.gradle b/game/plugins.gradle index 0b66a34d..ca12f833 100644 --- a/game/plugins.gradle +++ b/game/plugins.gradle @@ -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() + 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) }