32 lines
915 B
Kotlin
32 lines
915 B
Kotlin
|
import org.gradle.api.Project
|
||
|
import java.io.ByteArrayOutputStream
|
||
|
import java.text.SimpleDateFormat
|
||
|
import java.util.TimeZone
|
||
|
import java.util.Date
|
||
|
|
||
|
// Git is needed in your system PATH for these commands to work.
|
||
|
// If it's not installed, you can return a random value as a workaround
|
||
|
fun Project.getCommitCount(): String {
|
||
|
return runCommand("git rev-list --count HEAD")
|
||
|
// return "1"
|
||
|
}
|
||
|
|
||
|
fun Project.getGitSha(): String {
|
||
|
return runCommand("git rev-parse --short HEAD")
|
||
|
// return "1"
|
||
|
}
|
||
|
|
||
|
fun Project.getBuildTime(): String {
|
||
|
val df = SimpleDateFormat("yyyy-MM-dd'T'HH:mm'Z'")
|
||
|
df.timeZone = TimeZone.getTimeZone("UTC")
|
||
|
return df.format(Date())
|
||
|
}
|
||
|
|
||
|
fun Project.runCommand(command: String): String {
|
||
|
val byteOut = ByteArrayOutputStream()
|
||
|
project.exec {
|
||
|
commandLine = command.split(" ")
|
||
|
standardOutput = byteOut
|
||
|
}
|
||
|
return String(byteOut.toByteArray()).trim()
|
||
|
}
|