Skip to content

Instantly share code, notes, and snippets.

@rishabhmhjn
Created November 5, 2014 07:26
Show Gist options
  • Save rishabhmhjn/3a51828ae2cd9c1f19bc to your computer and use it in GitHub Desktop.
Save rishabhmhjn/3a51828ae2cd9c1f19bc to your computer and use it in GitHub Desktop.
Executing shell commands and getting output in gradle
def getVersionName = { ->
def hashStdOut = new ByteArrayOutputStream()
exec {
commandLine "git", "rev-parse", "--short", "HEAD"
standardOutput = hashStdOut
}
def buildNumberStdOut = new ByteArrayOutputStream()
exec {
commandLine 'echo', "$BUILD_NUMBER"
standardOutput = buildNumberStdOut
}
return buildNumberStdOut.toString().trim() + '-' + hashStdOut.toString().trim()
}
def getVersionName2() {
return "echo $BUILD_NUMBER".execute().text.trim() +
"-" +
"git rev-parse --short HEAD".execute().text.trim()
}
task printGitVersionName {
doLast {
println getVersionName()
println getVersionName2()
}
}
// execute as "./gradlew -q printGitVersionName -PBUILD_NUMBER=457"
@kdsrsl
Copy link

kdsrsl commented Jun 30, 2018

Thx.
恍然大悟

@simonfelding
Copy link

Thank you!

@sdevn
Copy link

sdevn commented Feb 22, 2023

Very useful example! Thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment