I'm looking for a way to process both stdout and stderr simultaneously as one stream. For a stdout I can use:
cmd := exec.Command(command, flags...)
var wg sync.WaitGroup
stdout, err := cmd.StdoutPipe()
if err != nil {
return fmt.Errorf("RunCommand: cmd.StdoutPipe(): %v", err)
}
if err := cmd.Start(); err != nil {
return fmt.Errorf("RunCommand: cmd.Start(): %v", err)
}
scanner := bufio.NewScanner(stdout)
scanner.Split(ScanLinesR)
wg.Add(1)
go func() {
for scanner.Scan() {
text := scanner.Text()
if strings.TrimSpace(text) != "" {
DoWhateverYouNeedWithText(text)
}
}
wg.Done()
}()
wg.Wait()
But how I add stderr to the same code?