Separate Go discovery configuration from diagnostics
This commit is contained in:
@@ -187,18 +187,18 @@ func discoveryEnvironment() map[string]string {
|
||||
}
|
||||
|
||||
func discover(ctx context.Context, directory string, environment map[string]string, args ...string) ([]byte, error) {
|
||||
captured := &combinedWriter{}
|
||||
var configuration, diagnostics bytes.Buffer
|
||||
err := process.Run(ctx, process.Invocation{
|
||||
Args: args,
|
||||
Dir: directory,
|
||||
Env: environment,
|
||||
Stdout: captured,
|
||||
Stderr: captured,
|
||||
Stdout: &configuration,
|
||||
Stderr: &diagnostics,
|
||||
})
|
||||
contents := captured.Bytes()
|
||||
contents := configuration.Bytes()
|
||||
if err != nil {
|
||||
if len(contents) != 0 {
|
||||
return contents, fmt.Errorf("%s: %w: %s", strings.Join(args, " "), err, strings.TrimSpace(string(contents)))
|
||||
if output := strings.TrimSpace(configuration.String() + diagnostics.String()); output != "" {
|
||||
return contents, fmt.Errorf("%s: %w: %s", strings.Join(args, " "), err, output)
|
||||
}
|
||||
return contents, fmt.Errorf("%s: %w", strings.Join(args, " "), err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user