()
| 100 | } |
| 101 | |
| 102 | func (c *Context) findKeygen() (string, error) { |
| 103 | if c.keygenExe != "" { |
| 104 | return c.keygenExe, nil |
| 105 | } |
| 106 | |
| 107 | keygenExe, err := safeexec.LookPath("ssh-keygen") |
| 108 | if err != nil && runtime.GOOS == "windows" { |
| 109 | // We can try and find ssh-keygen in a Git for Windows install |
| 110 | if gitPath, err := safeexec.LookPath("git"); err == nil { |
| 111 | gitKeygen := filepath.Join(filepath.Dir(gitPath), "..", "usr", "bin", "ssh-keygen.exe") |
| 112 | if _, err = os.Stat(gitKeygen); err == nil { |
| 113 | return gitKeygen, nil |
| 114 | } |
| 115 | } |
| 116 | } |
| 117 | |
| 118 | if err == nil { |
| 119 | c.keygenExe = keygenExe |
| 120 | } |
| 121 | return keygenExe, err |
| 122 | } |
no test coverage detected