Automatically add 'pluginManagement' block to settings.gradle file.

Only in the case when it does not exist.
^KT-45744 In Progress
This commit is contained in:
Yahor Berdnikau
2021-03-16 17:07:46 +01:00
committed by TeamCityServer
parent 9e2cdc7337
commit f5dfe7ce95
2 changed files with 21 additions and 6 deletions
@@ -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
@@ -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()
)
}
}
}
}