mirror of https://github.com/tuskyapp/Tusky.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
924 B
27 lines
924 B
import org.gradle.api.provider.ValueSourceParameters |
|
import javax.inject.Inject |
|
|
|
// Must wrap this in a ValueSource in order to get well-defined fail behavior without confusing Gradle on repeat builds. |
|
abstract class GitShaValueSource implements ValueSource<String, ValueSourceParameters.None> { |
|
@Inject abstract ExecOperations getExecOperations() |
|
|
|
@Override String obtain() { |
|
try { |
|
def output = new ByteArrayOutputStream() |
|
|
|
execOperations.exec { |
|
it.commandLine 'git', 'rev-parse', '--short=8', 'HEAD' |
|
it.standardOutput = output |
|
} |
|
return output.toString().trim() |
|
} catch (GradleException ignore) { |
|
// Git executable unavailable, or we are not building in a git repo. Fall through: |
|
} |
|
return "unknown" |
|
} |
|
} |
|
|
|
// Export closure |
|
ext.getGitSha = { |
|
providers.of(GitShaValueSource) {}.get() |
|
}
|
|
|