| 956 | } |
| 957 | |
| 958 | func resolveGitPath() (string, error) { |
| 959 | path, err := safeexec.LookPath("git") |
| 960 | if err != nil { |
| 961 | if errors.Is(err, exec.ErrNotFound) { |
| 962 | programName := "git" |
| 963 | if runtime.GOOS == "windows" { |
| 964 | programName = "Git for Windows" |
| 965 | } |
| 966 | return "", &NotInstalled{ |
| 967 | message: fmt.Sprintf("unable to find git executable in PATH; please install %s before retrying", programName), |
| 968 | err: err, |
| 969 | } |
| 970 | } |
| 971 | return "", err |
| 972 | } |
| 973 | return path, nil |
| 974 | } |
| 975 | |
| 976 | func isFilesystemPath(p string) bool { |
| 977 | return p == "." || strings.HasPrefix(p, "./") || strings.HasPrefix(p, "/") |