()
| 89 | } |
| 90 | |
| 91 | func getRepoRootDir() (string, error) { |
| 92 | byteOut := &bytes.Buffer{} |
| 93 | |
| 94 | cmd := exec.Command("git", "rev-parse", "--git-dir") |
| 95 | cmd.Stdout = byteOut |
| 96 | cmd.Stderr = os.Stderr |
| 97 | |
| 98 | err := cmd.Run() |
| 99 | if err != nil { |
| 100 | return "", err |
| 101 | } |
| 102 | |
| 103 | gitDir := filepath.Clean(byteOut.String()) |
| 104 | |
| 105 | // remove /.git at last |
| 106 | gitDir = filepath.Dir(gitDir) |
| 107 | |
| 108 | return gitDir, nil |
| 109 | } |
| 110 | |
| 111 | func isHookExists(err error) bool { |
| 112 | return errors.Is(err, errHooksExist) |