From 43e94f73381ff6c32de35fb91fd13969d352f35a Mon Sep 17 00:00:00 2001 From: Michael Matloob Date: Thu, 21 Mar 2019 16:31:13 -0400 Subject: [PATCH] go/packages: give a better error if 'go' is missing If we can't execute the go command, check to see if it exists. If it doesn't, say so in the error. Fixes golang/go#29552 Change-Id: Iffd2db5fc8f1daa2e458eaa326b27d9a0d971b6b Reviewed-on: https://go-review.googlesource.com/c/tools/+/168777 Run-TryBot: Michael Matloob TryBot-Result: Gobot Gobot Reviewed-by: Ian Cottrell --- go/packages/golist.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/go/packages/golist.go b/go/packages/golist.go index ff889ffb2b..826ff00270 100644 --- a/go/packages/golist.go +++ b/go/packages/golist.go @@ -7,6 +7,7 @@ package packages import ( "bytes" "encoding/json" + "errors" "fmt" "go/types" "io/ioutil" @@ -743,6 +744,11 @@ func invokeGo(cfg *Config, args ...string) (*bytes.Buffer, error) { // 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) }