Populate default settings even when 'build.gradle' file is missing.

^KT-45745 In Progress
This commit is contained in:
Yahor Berdnikau
2021-10-14 14:52:39 +02:00
committed by TeamCityServer
parent c669749915
commit 031c5f47d9
@@ -257,29 +257,33 @@ private fun setupProjectFromTestResources(
} }
private fun Path.addDefaultBuildFiles() { private fun Path.addDefaultBuildFiles() {
if (Files.exists(resolve("build.gradle"))) { addPluginManagementToSettings()
val settingsFile = resolve("settings.gradle")
settingsFile.addPluginManagementToSettings()
}
val buildSrc = resolve("buildSrc") val buildSrc = resolve("buildSrc")
if (Files.exists(buildSrc)) { if (Files.exists(buildSrc)) {
val settingsFile = buildSrc.resolve("settings.gradle") buildSrc.addPluginManagementToSettings()
settingsFile.addPluginManagementToSettings()
} }
} }
private fun Path.addPluginManagementToSettings() { private fun Path.addPluginManagementToSettings() {
if (!Files.exists(this)) { val settingsGradle = resolve("settings.gradle")
toFile().writeText(DEFAULT_GROOVY_SETTINGS_FILE) val settingsGradleKts = resolve("settings.gradle.kts")
val fileToUpdate = when {
Files.exists(settingsGradle) -> settingsGradle
Files.exists(settingsGradleKts) -> settingsGradleKts
else -> null
}
if (fileToUpdate == null) {
settingsGradle.toFile().writeText(DEFAULT_GROOVY_SETTINGS_FILE)
} else { } else {
val settingsContent = toFile().readText() val settingsContent = fileToUpdate.toFile().readText()
if (!settingsContent if (!settingsContent
.lines() .lines()
.first { !it.startsWith("//") } .first { !it.startsWith("//") }
.startsWith("pluginManagement {") .startsWith("pluginManagement {")
) { ) {
toFile().writeText( fileToUpdate.toFile().writeText(
""" """
$DEFAULT_GROOVY_SETTINGS_FILE $DEFAULT_GROOVY_SETTINGS_FILE