From f5dfe7ce95a7088c34b20c2d4e5b433f2bb94846 Mon Sep 17 00:00:00 2001 From: Yahor Berdnikau Date: Tue, 16 Mar 2021 17:07:46 +0100 Subject: [PATCH] Automatically add 'pluginManagement' block to settings.gradle file. Only in the case when it does not exist. ^KT-45744 In Progress --- .../gradle/testbase/projectSetupDefaults.kt | 2 +- .../kotlin/gradle/testbase/testDsl.kt | 25 +++++++++++++++---- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/projectSetupDefaults.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/projectSetupDefaults.kt index c70092a3162..8b06d3e6d85 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/projectSetupDefaults.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/projectSetupDefaults.kt @@ -3,7 +3,7 @@ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. */ -package org.jetbrains.kotlin.gradle +package org.jetbrains.kotlin.gradle.testbase import org.intellij.lang.annotations.Language diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/testDsl.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/testDsl.kt index c34a947c0f5..935e1c8099b 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/testDsl.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/testDsl.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.gradle.testbase import org.gradle.testkit.runner.BuildResult import org.gradle.testkit.runner.GradleRunner -import org.jetbrains.kotlin.gradle.DEFAULT_GROOVY_SETTINGS_FILE import kotlin.test.assertTrue import java.nio.file.* import java.nio.file.Files.copy @@ -109,10 +108,26 @@ private fun setupProjectFromTestResources( } private fun Path.addDefaultBuildFiles() { - if (Files.exists(resolve("build.gradle")) && - !Files.exists(resolve("settings.gradle")) - ) { - resolve("settings.gradle").toFile().writeText(DEFAULT_GROOVY_SETTINGS_FILE) + if (Files.exists(resolve("build.gradle"))) { + val settingsFile = resolve("settings.gradle") + if (!Files.exists(settingsFile)) { + settingsFile.toFile().writeText(DEFAULT_GROOVY_SETTINGS_FILE) + } else { + val settingsContent = settingsFile.toFile().readText() + if (!settingsContent + .lines() + .first { !it.startsWith("//") } + .startsWith("pluginManagement {") + ) { + settingsFile.toFile().writeText( + """ + $DEFAULT_GROOVY_SETTINGS_FILE + + $settingsContent + """.trimIndent() + ) + } + } } }