Rok Oblak
07/18/2024, 10:48 AMAleksei Tirman [JB]
07/18/2024, 10:50 AMEivind
07/18/2024, 10:51 AMEivind
07/18/2024, 10:53 AMimport org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
id("myorg.kotlin-library-conventions")
id("myorg.kotlin-publish-conventions")
}
val gitSha: String = if (project.hasProperty("gitsha")) {
project.property("gitsha") as String
} else {
"0000000000000000000000000000000000000000"
}
sourceSets {
val main by getting {
kotlin.srcDir("build/generated/kotlin")
}
}
tasks.register("generateVersionObject") {
val versionObjectFile = file("build/generated/kotlin/no/domstol/metadata/VersionData.kt")
outputs.file(versionObjectFile)
val bv = project.version
val sha = gitSha
doLast {
versionObjectFile.writeText("""
package no.domstol.metadata
internal object VersionData {
val version: String = "$bv"
val gitSha: String = "$sha"
}
""".trimIndent())
}
}.let { generateVersionTask ->
tasks.withType<KotlinCompile>().configureEach {
dependsOn(generateVersionTask)
}
tasks.named("sourcesJar") {
dependsOn(generateVersionTask)
}
}
Eivind
07/18/2024, 10:54 AMEivind
07/18/2024, 10:57 AMobject VersionInfo {
private val fullVersionString = "${VersionData.version} (git:${VersionData.gitSha})"
private const val minShaLength = 7
fun asVersionString(product: String): String = "$product/$fullVersionString"
fun version(): String {
return "${VersionData.version}.${VersionData.gitSha.take(minShaLength)}"
}
fun isSameVersion(versionString: String): Boolean {
val otherString = versionString.split('/').last()
return fullVersionString == otherString
}
fun ifNotSameVersion(versionString: String, block: (String, String) -> Unit) {
val otherString = versionString.split('/').last()
if (fullVersionString != otherString) {
block(fullVersionString, otherString)
}
}
}
Eivind
07/18/2024, 10:58 AMRok Oblak
07/18/2024, 11:52 AM