Ensure Android SDK license files always have all license.

Sometime on CI it may happen that file already exists, but does not
contain all required licenses.
This commit is contained in:
Yahor Berdnikau
2021-03-29 11:00:18 +02:00
committed by TeamCityServer
parent 75bf5fdbfe
commit 6a586fb731
@@ -53,24 +53,39 @@ abstract class BaseGradleIT {
// https://developer.android.com/studio/intro/update.html#download-with-gradle
fun acceptAndroidSdkLicenses() = defaultBuildOptions().androidHome?.let {
val sdkLicenses = File(it, "licenses")
sdkLicenses.mkdirs()
val sdkLicensesDir = it.resolve("licenses")
if(!sdkLicensesDir.exists()) sdkLicensesDir.mkdirs()
val sdkLicense = File(sdkLicenses, "android-sdk-license")
if (!sdkLicense.exists()) {
sdkLicense.createNewFile()
sdkLicense.writeText(
"""
8933bad161af4178b1185d1a37fbf41ea5269c55
d56f5187479451eabf01fb78af6dfcb131a6481e
24333f8a63b6825ea9c5514f83c2829b004d1fee
""".trimIndent()
val sdkLicenses = listOf(
"8933bad161af4178b1185d1a37fbf41ea5269c55",
"d56f5187479451eabf01fb78af6dfcb131a6481e",
"24333f8a63b6825ea9c5514f83c2829b004d1fee",
)
val sdkPreviewLicense = "84831b9409646a918e30573bab4c9c91346d8abd"
val sdkLicenseFile = sdkLicensesDir.resolve("android-sdk-license")
if (!sdkLicenseFile.exists()) {
sdkLicenseFile.createNewFile()
sdkLicenseFile.writeText(
sdkLicenses.joinToString(separator = "\n")
)
} else {
sdkLicenses
.subtract(
sdkLicenseFile.readText().lines()
)
.forEach {
sdkLicenseFile.appendText("$it\n")
}
}
val sdkPreviewLicense = File(sdkLicenses, "android-sdk-preview-license")
if (!sdkPreviewLicense.exists()) {
sdkPreviewLicense.writeText("84831b9409646a918e30573bab4c9c91346d8abd")
val sdkPreviewLicenseFile = sdkLicensesDir.resolve("android-sdk-preview-license")
if (!sdkPreviewLicenseFile.exists()) {
sdkPreviewLicenseFile.writeText(sdkPreviewLicense)
} else {
if (sdkPreviewLicense != sdkPreviewLicenseFile.readText().trim()) {
sdkPreviewLicenseFile.writeText(sdkPreviewLicense)
}
}
}