The script was solely inspired from this article about generating code:
https://medium.com/@IlyaEremin/npm-version-for-gradle-android-9137a7dc273c
TODO:
- Support kotlin (DSL)
- Detect current git branch
The script was solely inspired from this article about generating code:
https://medium.com/@IlyaEremin/npm-version-for-gradle-android-9137a7dc273c
TODO:
| def getVersionName = { getVersionProps()['sandboxVersionName'] } | |
| def getVersionProps() { | |
| def versionPropsFile = file('gradle.properties') | |
| if (!versionPropsFile.exists()) { | |
| versionPropsFile.createNewFile() | |
| } | |
| def versionProps = new Properties() | |
| versionProps.load(new FileInputStream(versionPropsFile)) | |
| return versionProps | |
| } | |
| def getVersionNamePatch = { (getVersionName() =~ /\d+/)[2].toInteger() } | |
| def getVersionNameMinor = { (getVersionName() =~ /\d+/)[1].toInteger() } | |
| def getVersionNameMajor = { (getVersionName() =~ /\d+/)[0].toInteger() } | |
| private def getAppVersionCode() { getVersionProps()['sandboxVersionCode'].toInteger() } | |
| private void save(major, minor, patch, versionCode) { | |
| save("${major}.${minor}.${patch}".toString(), versionCode.toString()) | |
| } | |
| private void save(versionName, versionCode) { | |
| def versionProps = getVersionProps() | |
| versionProps['sandboxVersionName'] = versionName | |
| versionProps['sandboxVersionCode'] = versionCode | |
| versionProps.store(file('gradle.properties').newWriter(), null) | |
| } | |
| task bumperInit() { | |
| group = 'bumper' | |
| doLast { | |
| def versionName = project.hasProperty('bumperVersionName') ? bumperVersionName : '1.0.0' | |
| def versionCode = project.hasProperty('bumperVersionCode') ? bumperVersionCode : '1' | |
| save(versionName, versionCode) | |
| } | |
| } | |
| task bumperVersionPatch () { | |
| group = 'bumper' | |
| doLast { | |
| save(getVersionNameMajor(), getVersionNameMinor(), getVersionNamePatch() + 1, getAppVersionCode() + 1) | |
| } | |
| } | |
| task bumperVersionMinor () { | |
| group = 'bumper' | |
| doLast { | |
| save(getVersionNameMajor(), getVersionNameMinor() + 1, 0, getAppVersionCode() + 1) | |
| } | |
| } | |
| task bumperVersionMajor () { | |
| group = 'bumper' | |
| doLast { | |
| save(getVersionNameMajor() + 1, 0, 0, getAppVersionCode() + 1) | |
| } | |
| } |
| def getVersionName = { getVersionProps()['versionName'] } | |
| def getVersionProps() { | |
| def versionPropsFile = file('version.properties') | |
| if (!versionPropsFile.exists()) { | |
| versionPropsFile.createNewFile() | |
| } | |
| def versionProps = new Properties() | |
| versionProps.load(new FileInputStream(versionPropsFile)) | |
| return versionProps | |
| } | |
| def getVersionNamePatch = { (getVersionName() =~ /\d+/)[2].toInteger() } | |
| def getVersionNameMinor = { (getVersionName() =~ /\d+/)[1].toInteger() } | |
| def getVersionNameMajor = { (getVersionName() =~ /\d+/)[0].toInteger() } | |
| private def getAppVersionCode() { getVersionProps()['versionCode'].toInteger() } | |
| private void save(major, minor, patch, versionCode) { | |
| save("${major}.${minor}.${patch}".toString(), versionCode.toString()) | |
| } | |
| private void save(versionName, versionCode) { | |
| def versionProps = getVersionProps() | |
| versionProps['versionName'] = versionName | |
| versionProps['versionCode'] = versionCode | |
| versionProps.store(file('version.properties').newWriter(), null) | |
| } | |
| task bumperInit() { | |
| group = 'bumper' | |
| doLast { | |
| def versionName = project.hasProperty('bumperVersionName') ? bumperVersionName : '0.0.1' | |
| def versionCode = project.hasProperty('bumperVersionCode') ? bumperVersionCode : '1' | |
| save(versionName, versionCode) | |
| } | |
| } | |
| task bumperVersionPatch () { | |
| group = 'bumper' | |
| doLast { | |
| save(getVersionNameMajor(), getVersionNameMinor(), getVersionNamePatch() + 1, getAppVersionCode() + 1) | |
| } | |
| } | |
| task bumperVersionMinor () { | |
| group = 'bumper' | |
| doLast { | |
| save(getVersionNameMajor(), getVersionNameMinor() + 1, 0, getAppVersionCode() + 1) | |
| } | |
| } | |
| task bumperVersionMajor () { | |
| group = 'bumper' | |
| doLast { | |
| save(getVersionNameMajor() + 1, 0, 0, getAppVersionCode() + 1) | |
| } | |
| } |