[build][version] replace old version string parsing with regex
This commit is contained in:
@@ -32,16 +32,20 @@ open class VersionGenerator: DefaultTask() {
|
|||||||
} ?: "MetaVersion.DEV"
|
} ?: "MetaVersion.DEV"
|
||||||
|
|
||||||
|
|
||||||
|
private val versionPattern = "(\\d+)\\.(\\d+)(?:\\.(\\d+))?(?:-M(\\p{Digit}))?(?:-(\\p{Alpha}\\p{Alnum}*))?(?:-(\\d+))?".toRegex()
|
||||||
|
|
||||||
override fun configure(closure: Closure<*>): Task {
|
override fun configure(closure: Closure<*>): Task {
|
||||||
val result = super.configure(closure)
|
val result = super.configure(closure)
|
||||||
doFirst {
|
doFirst {
|
||||||
val content = buildString {
|
val content = buildString {
|
||||||
operator fun String.unaryPlus() = this@buildString.append(this)
|
operator fun String.unaryPlus() = this@buildString.append(this)
|
||||||
val version = konanVersion.split(".")
|
val (majorStr, minorStr, maintenanceStr, milestoneStr) =
|
||||||
val major = version[0].toInt()
|
versionPattern.matchEntire(konanVersion)?.destructured
|
||||||
val minor = version[1].toInt()
|
?: throw IllegalArgumentException("Cannot parse Kotlin/Native version: $konanVersion")
|
||||||
val maintenance = if (version.size > 2) version[2].toInt() else 0
|
val major = majorStr.toInt()
|
||||||
val milestone = konanVersion.split("-M").getOrNull(1)?.toInt() ?: -1
|
val minor = minorStr.toInt()
|
||||||
|
val maintenance = maintenanceStr.toIntOrNull() ?: 0
|
||||||
|
val milestone = milestoneStr.toIntOrNull() ?: -1
|
||||||
project.logger.info("BUILD_NUMBER: $buildNumber")
|
project.logger.info("BUILD_NUMBER: $buildNumber")
|
||||||
val build = buildNumber?.let {
|
val build = buildNumber?.let {
|
||||||
it.split("-").last().toInt() //7-dev-buildcount
|
it.split("-").last().toInt() //7-dev-buildcount
|
||||||
|
|||||||
Reference in New Issue
Block a user