1
0

Do not lose stdout

This commit is contained in:
2023-05-08 21:35:47 +00:00
parent 1a1afce4f2
commit 15d8ab8137

View File

@@ -15,6 +15,7 @@ import (
"os/exec" "os/exec"
"runtime" "runtime"
"strings" "strings"
"sync"
"syscall" "syscall"
"time" "time"
@@ -421,7 +422,12 @@ func (q System) Command(user, cmd string) (output string, err error) {
return return
} }
var wg sync.WaitGroup
wg.Add(1)
go func() { go func() {
defer wg.Done()
scanner := bufio.NewScanner(stdout) scanner := bufio.NewScanner(stdout)
for scanner.Scan() { for scanner.Scan() {
m := scanner.Text() m := scanner.Text()
@@ -431,7 +437,10 @@ func (q System) Command(user, cmd string) (output string, err error) {
output = strings.TrimSuffix(output, "\n") output = strings.TrimSuffix(output, "\n")
}() }()
wg.Add(1)
go func() { go func() {
defer wg.Done()
scanner := bufio.NewScanner(stderr) scanner := bufio.NewScanner(stderr)
for scanner.Scan() { for scanner.Scan() {
m := scanner.Text() m := scanner.Text()
@@ -443,6 +452,8 @@ func (q System) Command(user, cmd string) (output string, err error) {
}() }()
err = session.Wait() err = session.Wait()
wg.Wait()
return return
} }