Initial commit
This commit is contained in:
43
checks.gradle.kts
Normal file
43
checks.gradle.kts
Normal file
@@ -0,0 +1,43 @@
|
||||
tasks.register("ensureChecksPreCommitHook") {
|
||||
group = "verification"
|
||||
description = "Ensures that the Git pre-commit hook for ktlint is properly set up"
|
||||
|
||||
doLast {
|
||||
val gitHooksDir = rootProject.file(".git/hooks")
|
||||
val preCommitHookFile = gitHooksDir.resolve("pre-commit")
|
||||
val requiredHookContent =
|
||||
"""
|
||||
#!/bin/sh
|
||||
|
||||
# https://github.com/pinterest/ktlint pre-commit hook
|
||||
|
||||
ktlint
|
||||
""".trimIndent()
|
||||
|
||||
if (!gitHooksDir.exists()) {
|
||||
logger.warn("Git hooks directory not found. Is this a Git repository?")
|
||||
return@doLast
|
||||
}
|
||||
|
||||
if (!preCommitHookFile.exists()) {
|
||||
logger.lifecycle("Creating ktlint pre-commit hook")
|
||||
preCommitHookFile.writeText(requiredHookContent)
|
||||
preCommitHookFile.setExecutable(true)
|
||||
} else {
|
||||
val currentContent = preCommitHookFile.readText()
|
||||
if (!currentContent.contains(requiredHookContent)) {
|
||||
logger.lifecycle("Updating pre-commit hook with ktlint check")
|
||||
preCommitHookFile.writeText(requiredHookContent)
|
||||
preCommitHookFile.setExecutable(true)
|
||||
} else {
|
||||
logger.lifecycle("ktlint pre-commit hook is already properly configured")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
gradle.projectsEvaluated {
|
||||
tasks.matching { it.name != "ensureChecksPreCommitHook" }.configureEach {
|
||||
dependsOn("ensureChecksPreCommitHook")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user