From e04154b235501e7554d9c11acb01ce2f4f2834bf Mon Sep 17 00:00:00 2001 From: Mikhail Klementev Date: Wed, 26 Apr 2023 14:35:20 +0000 Subject: [PATCH] Fix stderr log --- qemu/qemu-kernel.go | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/qemu/qemu-kernel.go b/qemu/qemu-kernel.go index 73a67b7..6d900c4 100644 --- a/qemu/qemu-kernel.go +++ b/qemu/qemu-kernel.go @@ -378,7 +378,11 @@ func (q System) Command(user, cmd string) (output string, err error) { if err != nil { return } - session.Stderr = session.Stdout + + stderr, err := session.StderrPipe() + if err != nil { + return + } err = session.Start(cmd) if err != nil { @@ -395,6 +399,17 @@ func (q System) Command(user, cmd string) (output string, err error) { output = strings.TrimSuffix(output, "\n") }() + go func() { + scanner := bufio.NewScanner(stderr) + for scanner.Scan() { + m := scanner.Text() + output += m + "\n" + // Note: it prints stderr as stdout + flog.Trace().Str("stdout", m).Msg("") + } + output = strings.TrimSuffix(output, "\n") + }() + err = session.Wait() return }