From 1019cc8e6ac2ea03e981e04774b543c32d397f86 Mon Sep 17 00:00:00 2001 From: Gary Tierney Date: Sun, 18 Jun 2017 21:37:44 +0100 Subject: [PATCH] Check for conflicting plugin names at build-time --- game/plugins.gradle | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) 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) }