From 7cea455c4d1a18aed716bd0a164284b7d564ac78 Mon Sep 17 00:00:00 2001 From: Nicolas De Loof Date: Wed, 7 May 2025 15:27:32 +0200 Subject: [PATCH] simplification Signed-off-by: Nicolas De Loof --- pkg/compose/plugins.go | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/pkg/compose/plugins.go b/pkg/compose/plugins.go index fd0b48ff7..d79030561 100644 --- a/pkg/compose/plugins.go +++ b/pkg/compose/plugins.go @@ -33,7 +33,6 @@ import ( "github.com/spf13/cobra" "go.opentelemetry.io/otel" "go.opentelemetry.io/otel/propagation" - "golang.org/x/sync/errgroup" ) type JsonMessage struct { @@ -75,23 +74,6 @@ func (s *composeService) runPlugin(ctx context.Context, project *types.Project, } func (s *composeService) executePlugin(ctx context.Context, cmd *exec.Cmd, command string, service types.ServiceConfig) (types.Mapping, error) { - eg := errgroup.Group{} - stdout, err := cmd.StdoutPipe() - if err != nil { - return nil, err - } - - err = cmd.Start() - if err != nil { - return nil, err - } - eg.Go(cmd.Wait) - - decoder := json.NewDecoder(stdout) - defer func() { _ = stdout.Close() }() - - variables := types.Mapping{} - pw := progress.ContextWriter(ctx) var action string switch command { @@ -104,6 +86,22 @@ func (s *composeService) executePlugin(ctx context.Context, cmd *exec.Cmd, comma default: return nil, fmt.Errorf("unsupported plugin command: %s", command) } + + stdout, err := cmd.StdoutPipe() + if err != nil { + return nil, err + } + + err = cmd.Start() + if err != nil { + return nil, err + } + + decoder := json.NewDecoder(stdout) + defer func() { _ = stdout.Close() }() + + variables := types.Mapping{} + for { var msg JsonMessage err = decoder.Decode(&msg) @@ -130,10 +128,10 @@ func (s *composeService) executePlugin(ctx context.Context, cmd *exec.Cmd, comma } } - err = eg.Wait() + err = cmd.Wait() if err != nil { pw.Event(progress.ErrorMessageEvent(service.Name, err.Error())) - return nil, fmt.Errorf("failed to %s external service: %s", action, err.Error()) + return nil, fmt.Errorf("failed to %s service provider: %s", action, err.Error()) } switch command { case "up":