Separate Go discovery configuration from diagnostics

This commit is contained in:
2026-10-07 00:45:23 +00:00
parent ceb7e2847a
commit e6def4ed7b
4 changed files with 55 additions and 8 deletions

View File

@@ -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)
}