Fix semantic version parser
This commit is contained in:
parent
8d3c24c7f0
commit
034d1b0237
|
@ -1,7 +1,5 @@
|
|||
package io.gitlab.jfronny.scripts
|
||||
|
||||
import java.lang.Runtime.Version
|
||||
|
||||
data class SemanticVersion(val major: Int, val minor: Int, val patch: Int, val type: VersionType, val build: String?): Comparable<SemanticVersion> {
|
||||
init {
|
||||
require(build == null || buildPattern.matches(build)) { "Illegal build string" }
|
||||
|
@ -46,7 +44,7 @@ data class SemanticVersion(val major: Int, val minor: Int, val patch: Int, val t
|
|||
companion object {
|
||||
private val identifier = Regex("[a-zA-Z1-9][a-zA-Z0-9]*")
|
||||
private val buildPattern = Regex("$identifier(?:\\.$identifier)+")
|
||||
private val number = Regex("[1-9][0-9]*")
|
||||
private val number = Regex("[1-9][0-9]*|0")
|
||||
private val versionCore = Regex("($number)\\.($number)\\.($number)")
|
||||
private val legacyVersion = Regex("([vba]|rc)$versionCore(\\+$buildPattern)?")
|
||||
private val restrictedSemver = Regex("$versionCore(-(?:alpha|beta|rc))?(\\+$buildPattern)?")
|
||||
|
|
|
@ -7,7 +7,7 @@ enum class VersionType(val displayName: String, val curseforgeName: String, val
|
|||
ALPHA("Alpha", "alpha", "alpha", "alpha", "a"),
|
||||
BETA("Beta", "beta", "beta", "beta", "b"),
|
||||
RELEASE_CANDIDATE("Release Candidate", "beta", "beta", "rc", "rc"),
|
||||
RELEASE("Release", "release", "release", "release", "r");
|
||||
RELEASE("Release", "release", "release", "release", "v");
|
||||
|
||||
companion object {
|
||||
private val byShorthand = Arrays.stream(VersionType.values()).collect(Collectors.toUnmodifiableMap({ it.shorthand }, { it }))
|
||||
|
|
Loading…
Reference in New Issue