build: Upgrade versioning to handle multiple minecraft versions
This commit is contained in:
@@ -1,26 +1,25 @@
|
||||
|
||||
fun execString(vararg args: String): String {
|
||||
val pb = ProcessBuilder(*args)
|
||||
.redirectOutput(ProcessBuilder.Redirect.PIPE)
|
||||
.start()
|
||||
pb.waitFor()
|
||||
return pb.inputStream.readAllBytes().decodeToString().trim()
|
||||
val pb = ProcessBuilder(*args)
|
||||
.redirectOutput(ProcessBuilder.Redirect.PIPE)
|
||||
.start()
|
||||
pb.waitFor()
|
||||
return pb.inputStream.readAllBytes().decodeToString().trim()
|
||||
}
|
||||
|
||||
private val tag = "([0-9.]+)\\.0".toRegex()
|
||||
private val tagOffset = "([0-9.]+)\\.0-([0-9]+)..+".toRegex()
|
||||
private val tag = "([0-9.]+)(?:\\+.*)?".toRegex()
|
||||
private val tagOffset = "([0-9.]+)(?:\\+.*)?-([0-9]+)-(.+)".toRegex()
|
||||
|
||||
inline fun <T> Regex.useMatcher(string: String, block: (MatchResult) -> T): T? {
|
||||
return matchEntire(string)?.let(block)
|
||||
return matchEntire(string)?.let(block)
|
||||
}
|
||||
|
||||
fun getGitTagInfo(): String {
|
||||
val str = execString("git", "describe", "--tags", "HEAD")
|
||||
tag.useMatcher(str) {
|
||||
return it.groupValues[0]
|
||||
}
|
||||
tagOffset.useMatcher(str) {
|
||||
return it.groupValues[1] + "." + it.groupValues[2]
|
||||
}
|
||||
return "nogitversion"
|
||||
fun getGitTagInfo(mcVersion: String): String {
|
||||
val str = execString("git", "describe", "--tags", "HEAD")
|
||||
tag.useMatcher(str) {
|
||||
return it.groupValues[1] + "+mc$mcVersion"
|
||||
}
|
||||
tagOffset.useMatcher(str) {
|
||||
return it.groupValues[1] + "-dev+mc$mcVersion+" + it.groupValues[3]
|
||||
}
|
||||
return "nogitversion+mc$mcVersion"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user