diff --git a/example/kobalt/src/Build.kt b/example/kobalt/src/Build.kt index a703f44..f29fbcb 100644 --- a/example/kobalt/src/Build.kt +++ b/example/kobalt/src/Build.kt @@ -1,17 +1,23 @@ -import java.util.Properties import java.io.FileInputStream +import java.io.FileOutputStream +import java.lang.NumberFormatException +import java.util.Properties import com.beust.kobalt.* -import com.beust.kobalt.plugin.packaging.* +import com.beust.kobalt.api.annotation.Task +import com.beust.kobalt.api.Project import com.beust.kobalt.plugin.application.* -import com.beust.kobalt.plugin.java.* import com.beust.kobalt.plugin.apt.* +import com.beust.kobalt.plugin.java.* +import com.beust.kobalt.plugin.packaging.* val repos = repos() val p = project { - fun getVersion(isIncremental: Boolean = false): String { + name = "example" + + fun getVersion(isIncrement: Boolean = false): String { val propsFile = "version.properties" val majorKey = "version.major" val minorKey = "version.minor" @@ -31,10 +37,28 @@ val p = project { if (prerelease.length > 0) { prerelease.insert(0, "+"); } - return (p.getProperty(majorKey, "1") + "." + p.getProperty(minorKey, "0") + "." + p.getProperty(patchKey, "0") + prerelease + metadata) + + val value = p.getProperty(patchKey, "0"); + val patch: String? + + if (isIncrement) { + patch = try { + (value.toInt() + 1).toString(); + } catch (e: NumberFormatException) { + "0" + } + + FileOutputStream(propsFile).use { output -> + p.setProperty(patchKey, patch) + p.store(output, "") + } + } else { + patch = value; + } + + return (p.getProperty(majorKey, "1") + "." + p.getProperty(minorKey, "0") + "." + patch + prerelease + metadata) } - name = "example" version = getVersion() val mainClassName = "net.thauvin.erik.semver.example.Example" @@ -69,3 +93,9 @@ val p = project { mainClass = mainClassName } } + +@Task(name = "release", dependsOn = arrayOf("clean"), description = "Releases new version.") +fun taskRelease(project: Project): TaskResult { + project.version = project.getVersion(true) + return TaskResult() +} diff --git a/example/libs/example-3.1.39+beta.jar b/example/libs/example-3.1.39+beta.jar deleted file mode 100644 index 7a74f49..0000000 Binary files a/example/libs/example-3.1.39+beta.jar and /dev/null differ diff --git a/example/libs/example-3.1.45+beta.jar b/example/libs/example-3.1.45+beta.jar new file mode 100644 index 0000000..bc1d77b Binary files /dev/null and b/example/libs/example-3.1.45+beta.jar differ diff --git a/example/version.properties b/example/version.properties index 49f1933..bb3db8e 100644 --- a/example/version.properties +++ b/example/version.properties @@ -1,7 +1,8 @@ -#Wed, 03 Feb 2016 13:10:11 -0800 -version.project=Example -version.major=3 -version.minor=1 -version.patch=39 -version.buildmeta= +# +#Wed Jul 06 19:28:58 PDT 2016 version.prerelease=beta +version.project=Example +version.minor=1 +version.buildmeta= +version.patch=45 +version.major=3