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