(segments ...string)
| 77 | } |
| 78 | |
| 79 | func HasFile(segments ...string) bool { |
| 80 | // The blessed way to resolve paths within git dir since Git 2.5.0 |
| 81 | pathCmd := gitCmd("rev-parse", "-q", "--git-path", filepath.Join(segments...)) |
| 82 | pathCmd.Stderr = nil |
| 83 | if output, err := pathCmd.Output(); err == nil { |
| 84 | if lines := outputLines(output); len(lines) == 1 { |
| 85 | if _, err := os.Stat(lines[0]); err == nil { |
| 86 | return true |
| 87 | } |
| 88 | } |
| 89 | } |
| 90 | |
| 91 | // Fallback for older git versions |
| 92 | dir, err := Dir() |
| 93 | if err != nil { |
| 94 | return false |
| 95 | } |
| 96 | |
| 97 | s := []string{dir} |
| 98 | s = append(s, segments...) |
| 99 | path := filepath.Join(s...) |
| 100 | if _, err := os.Stat(path); err == nil { |
| 101 | return true |
| 102 | } |
| 103 | |
| 104 | return false |
| 105 | } |
| 106 | |
| 107 | func Editor() (string, error) { |
| 108 | varCmd := gitCmd("var", "GIT_EDITOR") |
no test coverage detected
searching dependent graphs…