import org.gradle.api.Project import java.io.File project.removePrePushHookIfExists() fun Project.removePrePushHookIfExists() { val prePushHookPath = rootProject.getGitDirectory().toPath() .resolve("hooks") .resolve("pre-push") java.nio.file.Files.deleteIfExists(prePushHookPath) } fun Project.getGitDirectory(): File { val dotGitFile = File(projectDir, ".git") return if (dotGitFile.isFile) { val workTreeLink = dotGitFile.readLines().single { it.startsWith("gitdir: ") } val mainRepoPath = workTreeLink .substringAfter("gitdir: ", "") .substringBefore("/.git/worktrees/", "") .also { require(it.isNotEmpty()) } File(mainRepoPath, ".git").also { require(it.isDirectory) } } else { dotGitFile } }