anytype-kotlin-wild/versioning.gradle

116 lines
3.4 KiB
Groovy

import java.text.SimpleDateFormat
tasks.register("incrementVersionMajor") {
doLast {
incrementVersion true, false, false
}
}
tasks.register("incrementVersionMinor") {
doLast {
incrementVersion false, true, false
}
}
tasks.register("incrementVersionPatch") {
doLast {
incrementVersion false, false, true
}
}
tasks.register("enableDatedVersionName") {
enableDatedVersionName()
}
def incrementVersion(maj, min, patch) {
def versionMajor = getProperty('version.versionMajor').toInteger()
def versionMinor = getProperty('version.versionMinor').toInteger()
def versionPatch = getProperty('version.versionPatch').toInteger()
if(maj){
versionMajor++
versionMinor = 0
versionPatch = 0
}
if(min){
versionMinor++
versionPatch = 0
}
if(patch){
versionPatch++
}
def file = file('gradle.properties')
def sb = new StringBuilder()
file.eachLine {line ->
if(line.startsWith('version.versionMajor=')){
sb.append("version.versionMajor=${versionMajor}")
}else if(line.startsWith('version.versionMinor=')){
sb.append("version.versionMinor=${versionMinor}")
}else if(line.startsWith('version.versionPatch=')){
sb.append("version.versionPatch=${versionPatch}")
}else{
sb.append(line)
}
sb.append(System.getProperty("line.separator"))
}
file.text = sb.toString()
}
def enableDatedVersionName() {
def file = file('gradle.properties')
def sb = new StringBuilder()
def versionMajor = getProperty('version.versionMajor').toInteger()
def versionMinor = getProperty('version.versionMinor').toInteger()
def versionPatch = getProperty('version.versionPatch').toInteger()
file.eachLine {line ->
if(line.startsWith('version.versionMajor=')){
sb.append("version.versionMajor=${versionMajor}")
}else if(line.startsWith('version.versionMinor=')){
sb.append("version.versionMinor=${versionMinor}")
}else if(line.startsWith('version.versionPatch=')){
sb.append("version.versionPatch=${versionPatch}")
} else if(line.startsWith('version.useDatedVersionName=false')){
sb.append("version.useDatedVersionName=true")
}else{
sb.append(line)
}
sb.append(System.getProperty("line.separator"))
}
file.text = sb.toString()
}
ext.getBuildVersionName = {
def versionMajor = getProperty('version.versionMajor').toInteger()
def versionMinor = getProperty('version.versionMinor').toInteger()
def versionPatch = getProperty('version.versionPatch').toInteger()
def isDatedVersionNameEnabled = getProperty('version.useDatedVersionName').toBoolean()
if (isDatedVersionNameEnabled) {
def date = getCurrentDate()
return "${versionMajor}.${versionMinor}.${versionPatch}-${date}"
} else {
return "${versionMajor}.${versionMinor}.${versionPatch}"
}
}
ext.getBuildVersionCode = {
def versionMajor = getProperty('version.versionMajor').toInteger()
def versionMinor = getProperty('version.versionMinor').toInteger()
def versionPatch = getProperty('version.versionPatch').toInteger()
return versionMajor * 1000 + versionMinor * 100 + versionPatch
}
static def getCurrentDate() {
def date = new Date()
def sdf = new SimpleDateFormat("dd.MM.yy")
return sdf.format(date)
}