diff --git a/go/packages/golist.go b/go/packages/golist.go index c6c08a6f2f..4035086e69 100644 --- a/go/packages/golist.go +++ b/go/packages/golist.go @@ -7,7 +7,6 @@ package packages import ( "bytes" "encoding/json" - "errors" "fmt" "go/types" "io/ioutil" @@ -739,16 +738,15 @@ func invokeGo(cfg *Config, args ...string) (*bytes.Buffer, error) { } if err := cmd.Run(); err != nil { + // Check for 'go' executable not being found. + if ee, ok := err.(*exec.Error); ok && ee.Err == exec.ErrNotFound { + return nil, fmt.Errorf("'go list' driver requires 'go', but %s", exec.ErrNotFound) + } + exitErr, ok := err.(*exec.ExitError) if !ok { // Catastrophic error: - // - executable not found // - context cancellation - - // Check for executable not existing. - if _, err := exec.LookPath("go"); err != nil { - return nil, errors.New("'go list' driver requires 'go' to be installed") - } return nil, fmt.Errorf("couldn't exec 'go %v': %s %T", args, err, err) }