# HG changeset patch # User smith@nwoca.org # Date 1418496214 0 # Node ID 5a3a875a1f3ebe5f8badac97901e758d03261347 # Parent 629ee17d6f3908f1308ba07c53c4b32f9333f38e cleanup branch handling diff -r 629ee17d6f39 -r 5a3a875a1f3e init20.gradle --- a/init20.gradle Sat Dec 13 17:11:06 2014 +0000 +++ b/init20.gradle Sat Dec 13 18:43:34 2014 +0000 @@ -1,4 +1,5 @@ import groovy.sql.Sql +import groovy.transform.ToString final GradleVersion gradleCurrent = GradleVersion.current() final GradleVersion gradleV20 = GradleVersion.version('2.0') @@ -54,35 +55,19 @@ } } - -gradle.ext.branchName = System.getenv('bamboo_planRepository_branch') -gradle.ext.branchStream = "" - -if (!gradle.branchName) { - gradle.ext.branchName = "hg branch".execute().text.trim() - def rawParents = 'hg parents'.execute().text - def parent = rawParents.split('\n').find { it.startsWith("branch") }?.split(":")?.getAt(1)?.trim() - gradle.ext.branchName = parent ?: gradle.branchName -} +gradle.ext.branch = new BranchInfo(System.getenv('bamboo_planRepository_branch')) +gradle.ext.branchName = gradle.branch.name +gradle.ext.branchStream = gradle.branch.stream +gradle.ext.branchHash = gradle.branch.hash +println "${gradle.hgRepositoryUrl} ${gradle.branch}" -if (file('.hgflow').exists()) { - def flows = new Properties() - flows.load(file('.hgflow').newReader()) - flows.stringPropertyNames().each { - if (!it.startsWith("[") && gradle.branchName.startsWith(flows.getProperty(it))) { - gradle.ext.branchStream = it - } - } -} - -gradle.branchName = gradle.branchName.replace('@', '-') -gradle.ext.branchHash = generateMD5(gradle.branchName) loadEnvironments() gradle.environment.put('hgRepositoryUrl', gradle.hgRepositoryUrl) -gradle.environment.put('branchName', gradle.branchName) -gradle.environment.put('branchStream', gradle.branchStream) -gradle.environment.put('branchHash', gradle.branchHash) +gradle.environment.put('branchName', gradle.branch.name) +gradle.environment.put('branchStream', gradle.branch.stream) +gradle.environment.put('branchHash', gradle.branch.hash) + rootProject.ext.indyCapable = { @@ -499,8 +484,47 @@ } -def generateMD5(String s) { - def digest = java.security.MessageDigest.getInstance("MD5") - digest.update(s.bytes); - new BigInteger(1, digest.digest()).toString(16).padLeft(32, '0') -} \ No newline at end of file + +@ToString class BranchInfo { + def name + def stream + + BranchInfo(name) { + this.name = name + if (!name) { + this.name = determineName() + } + this.name = this.name.replace('@', '-') + determineStream() + } + + def getHash() { + generateMD5(name) + } + def generateMD5(String s) { + def digest = java.security.MessageDigest.getInstance("MD5") + digest.update(s.bytes); + new BigInteger(1, digest.digest()).toString(16).padLeft(32, '0') + } + + def determineName() { + def branch = "hg branch".execute().text.trim() + def rawParents = 'hg parents'.execute().text + def parent = rawParents.split('\n').find { it.startsWith("branch") }?.split(":")?.getAt(1)?.trim() + return parent ?: branch + } + + void determineStream() { + if (new File('.hgflow').exists()) { + def flows = new Properties() + flows.load(new File('.hgflow').newReader()) + flows.stringPropertyNames().each { + if (!it.startsWith("[") && name.startsWith(flows.getProperty(it))) { + stream = it + } + } + } + } + +} +