From 8d537b20e86514396809f9f3a37cac43f4bc2c24 Mon Sep 17 00:00:00 2001 From: gabriel-farache Date: Tue, 28 Nov 2023 20:44:40 +0100 Subject: [PATCH] Improving how transformation cmd completion is detected --- internal/filesystem/filesystem.go | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/internal/filesystem/filesystem.go b/internal/filesystem/filesystem.go index c0b7e42..f0a49b9 100644 --- a/internal/filesystem/filesystem.go +++ b/internal/filesystem/filesystem.go @@ -2427,6 +2427,19 @@ func (fs *FileSystem) runTransform(currentRunDir string, currentRunConfigPaths [ logrus.Errorf("failed to start the transform command. Error: %q", err) return err } + flag := true + go func() { + if err := cmd.Wait(); err != nil { + logrus.Errorf("failed to wait for end of the transform command. Error: %q", err) + } + logrus.Debugf("Closing transformCh: %t", flag) + if flag { + flag = false + transformCh <- nil + close(transformCh) + } + + }() wg := sync.WaitGroup{} outCh := make(chan string, 10) stdoutReader := bufio.NewReader(stdout) @@ -2454,17 +2467,17 @@ func (fs *FileSystem) runTransform(currentRunDir string, currentRunConfigPaths [ } text, err = stderrReader.ReadString('\n') } - logrus.Debugf("failed to fetch the stderr of move2kube transform. Error: %q", err) + logrus.Infof("failed to fetch the stderr of move2kube transform. Error: %q", err) wg.Done() }() go func() { wg.Wait() close(outCh) }() - flag := true for outputLine := range outCh { if flag && strings.Contains(outputLine, portStr) { flag = false + logrus.Debug("Closing transformCh") transformCh <- nil close(transformCh) }