|
20 | 20 | __HOOK_CONTENTS: dict[str, list[str]] = { |
21 | 21 | "pre-commit": [ |
22 | 22 | "diff_files=$(git diff --cached --name-only)", |
23 | | - '[ -z "$diff_files" ] || vectorcode vectorise $diff_files', |
| 23 | + 'if [ -d ".vectorcode" ] && [ ! -z "$diff_files" ]; then', |
| 24 | + " vectorcode vectorise $diff_files", |
| 25 | + "fi", |
24 | 26 | ], |
25 | 27 | "post-checkout": [ |
26 | | - 'files=$(git diff --name-only "$1" "$2")', |
27 | | - '[ -z "$files" ] || vectorcode vectorise $files', |
| 28 | + 'if [ -z "$(echo $1|grep [^0])" ]; then', |
| 29 | + ' files=""', |
| 30 | + " ( [ -f .vectorcode/vectorcode.include ] || [ -f ~/.config/vectorcode/vectorcode.include ] ) && vectorcode vectorise || true", |
| 31 | + "else", |
| 32 | + ' files=$(git diff --name-only "$1" "$2")', |
| 33 | + "fi", |
| 34 | + 'if [ -d ".vectorcode" ] && [ ! -z "$files" ]; then', |
| 35 | + " vectorcode vectorise $files", |
| 36 | + "fi", |
28 | 37 | ], |
29 | 38 | } |
30 | 39 |
|
@@ -84,6 +93,8 @@ def inject_hook(self, content: list[str], force: bool = False): |
84 | 93 | self.lines.extend(i if i.endswith("\n") else i + "\n" for i in content) |
85 | 94 | self.lines.append(self.suffix + "\n") |
86 | 95 | with open(self.path, "w") as fin: |
| 96 | + if os.path.islink(self.path): # pragma: nocover |
| 97 | + logger.warning(f"{self.path} is a symlink.") |
87 | 98 | fin.writelines(self.lines) |
88 | 99 | if platform.system() != "Windows": |
89 | 100 | # for unix systems, set the executable bit. |
|
0 commit comments