mirror of
https://github.com/pre-commit/pre-commit.git
synced 2026-04-16 02:21:46 +04:00
Permit installing to core.hooksPath if within repo
### Summary There's [several threads](https://github.com/pre-commit/pre-commit/issues?q=is%3Aissue+core+hooksPath+is%3Aclosed) around using pre-commit with global git hooks directories, but I didn't see anything around setting `core.hooksPath` to a directory within the repo, as the `husky` tool does. This patch adds support for installing/uninstalling pre-commit when `core.hooksPath` references a path within the git repo. ### Testing - add a couple of simple tests - a repo with core.hooksPath set within the repo, install/uninstall does the right thing - a repo with core.hooksPath set to `../hooks`, install/uninstall fails - a repo with core.hooksPath unset, install/uninstall works as before
This commit is contained in:
parent
6cfdabb69a
commit
451e042835
3 changed files with 51 additions and 8 deletions
|
|
@ -173,9 +173,13 @@ def has_diff(*args: str, repo: str = '.') -> bool:
|
|||
return cmd_output_b(*cmd, cwd=repo, retcode=None)[0] == 1
|
||||
|
||||
|
||||
def has_core_hookpaths_set() -> bool:
|
||||
def get_core_hookspath() -> str:
|
||||
_, out, _ = cmd_output_b('git', 'config', 'core.hooksPath', retcode=None)
|
||||
return bool(out.strip())
|
||||
return out.strip().decode()
|
||||
|
||||
|
||||
def has_core_hookpaths_set() -> bool:
|
||||
return bool(get_core_hookspath())
|
||||
|
||||
|
||||
def init_repo(path: str, remote: str) -> None:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue