truststore_darwin: check the default Homebrew path for certutil

"mkcert localhost" went from 2.125s to 0.552s, a 4x speedup.

Fixes #135
This commit is contained in:
Filippo Valsorda
2019-08-16 18:13:31 -04:00
parent 25b1d39486
commit 8ff73503d2

View File

@@ -41,9 +41,15 @@ func init() {
switch runtime.GOOS { switch runtime.GOOS {
case "darwin": case "darwin":
if hasCertutil = binaryExists("certutil"); hasCertutil { switch {
case binaryExists("certutil"):
certutilPath, _ = exec.LookPath("certutil") certutilPath, _ = exec.LookPath("certutil")
} else { hasCertutil = true
case binaryExists("/usr/local/opt/nss/bin/certutil"):
// Check the default Homebrew path, to save executing Ruby. #135
certutilPath = "/usr/local/opt/nss/bin/certutil"
hasCertutil = true
default:
out, err := exec.Command("brew", "--prefix", "nss").Output() out, err := exec.Command("brew", "--prefix", "nss").Output()
if err == nil { if err == nil {
certutilPath = filepath.Join(strings.TrimSpace(string(out)), "bin", "certutil") certutilPath = filepath.Join(strings.TrimSpace(string(out)), "bin", "certutil")