diff options
Diffstat (limited to 'vendor/golang.org/x/tools/go/packages/external.go')
-rw-r--r-- | vendor/golang.org/x/tools/go/packages/external.go | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/vendor/golang.org/x/tools/go/packages/external.go b/vendor/golang.org/x/tools/go/packages/external.go index b696b68709..8c8473fd0b 100644 --- a/vendor/golang.org/x/tools/go/packages/external.go +++ b/vendor/golang.org/x/tools/go/packages/external.go @@ -12,6 +12,7 @@ import ( "bytes" "encoding/json" "fmt" + "os" "os/exec" "strings" ) @@ -76,15 +77,21 @@ func findExternalDriver(cfg *Config) driver { } buf := new(bytes.Buffer) + stderr := new(bytes.Buffer) cmd := exec.CommandContext(cfg.Context, tool, words...) cmd.Dir = cfg.Dir cmd.Env = cfg.Env cmd.Stdin = bytes.NewReader(req) cmd.Stdout = buf - cmd.Stderr = new(bytes.Buffer) + cmd.Stderr = stderr + if err := cmd.Run(); err != nil { return nil, fmt.Errorf("%v: %v: %s", tool, err, cmd.Stderr) } + if len(stderr.Bytes()) != 0 && os.Getenv("GOPACKAGESPRINTDRIVERERRORS") != "" { + fmt.Fprintf(os.Stderr, "%s stderr: <<%s>>\n", cmdDebugStr(cmd, words...), stderr) + } + var response driverResponse if err := json.Unmarshal(buf.Bytes(), &response); err != nil { return nil, err |