kiwix-android/team-props/git-hooks.gradle
2024-08-16 15:35:10 +00:00

35 lines
947 B
Groovy

static def isLinuxOrMacOs() {
def osName = System.getProperty('os.name').toLowerCase(Locale.ROOT)
return osName.contains('linux') || osName.contains('mac os') || osName.contains('macos')
}
def gitHooksDir = 'git rev-parse --path-format=absolute --git-path hooks'.execute().text.trim()
task copyGitHooks(type: Copy) {
description 'Copies the git hooks from team-props/git-hooks to the .git folder.'
from("${rootDir}/team-props/git-hooks/") {
include '**/*.sh'
rename '(.*).sh', '$1'
}
into gitHooksDir
}
task installGitHooks(type: Exec) {
description 'Installs the pre-commit git hooks from team-props/git-hooks.'
group 'git hooks'
workingDir rootDir
commandLine 'chmod'
args '-R', '+x', gitHooksDir
onlyIf { isLinuxOrMacOs() }
dependsOn copyGitHooks
doLast {
logger.info('Git hook installed successfully.')
}
}
afterEvaluate {
tasks.named('preBuild').configure {
dependsOn installGitHooks
}
}