updated dependencies and go

This commit is contained in:
2026-04-21 11:06:01 +02:00
parent f62e7499ec
commit 84b87d61f2
91 changed files with 551 additions and 637 deletions
+12 -15
View File
@@ -4,6 +4,7 @@ import (
"bufio"
"git.blackforestbytes.com/BlackForestBytes/goext/syncext"
"io"
"strings"
"sync"
)
@@ -29,14 +30,14 @@ func (pr *pipeReader) Read(listener []CommandListener) (string, string, string,
wg.Add(1)
stdoutBufferReader, stdoutBufferWriter := io.Pipe()
stdout := ""
var stdout strings.Builder
go func() {
buf := make([]byte, 128)
for {
n, err := pr.stdout.Read(buf)
if n > 0 {
txt := string(buf[:n])
stdout += txt
stdout.WriteString(txt)
_, _ = stdoutBufferWriter.Write(buf[:n])
for _, lstr := range listener {
lstr.ReadRawStdout(buf[:n])
@@ -58,7 +59,7 @@ func (pr *pipeReader) Read(listener []CommandListener) (string, string, string,
wg.Add(1)
stderrBufferReader, stderrBufferWriter := io.Pipe()
stderr := ""
var stderr strings.Builder
go func() {
buf := make([]byte, 128)
for {
@@ -66,7 +67,7 @@ func (pr *pipeReader) Read(listener []CommandListener) (string, string, string,
if n > 0 {
txt := string(buf[:n])
stderr += txt
stderr.WriteString(txt)
_, _ = stderrBufferWriter.Write(buf[:n])
for _, lstr := range listener {
lstr.ReadRawStderr(buf[:n])
@@ -88,8 +89,7 @@ func (pr *pipeReader) Read(listener []CommandListener) (string, string, string,
// [3] collect stdout line-by-line
wg.Add(1)
go func() {
wg.Go(func() {
scanner := bufio.NewScanner(stdoutBufferReader)
if pr.lineBufferSize != nil {
scanner.Buffer([]byte{}, *pr.lineBufferSize)
@@ -105,13 +105,11 @@ func (pr *pipeReader) Read(listener []CommandListener) (string, string, string,
errch <- err
}
combch <- combevt{"", true}
wg.Done()
}()
})
// [4] collect stderr line-by-line
wg.Add(1)
go func() {
wg.Go(func() {
scanner := bufio.NewScanner(stderrBufferReader)
if pr.lineBufferSize != nil {
scanner.Buffer([]byte{}, *pr.lineBufferSize)
@@ -127,13 +125,12 @@ func (pr *pipeReader) Read(listener []CommandListener) (string, string, string,
errch <- err
}
combch <- combevt{"", true}
wg.Done()
}()
})
// [5] combine stdcombined
wg.Add(1)
stdcombined := ""
var stdcombined strings.Builder
go func() {
stopctr := 0
for stopctr < 2 {
@@ -141,7 +138,7 @@ func (pr *pipeReader) Read(listener []CommandListener) (string, string, string,
if vvv.stop {
stopctr++
} else {
stdcombined += vvv.line + "\n" // this comes from bufio.Scanner and has no newlines...
stdcombined.WriteString(vvv.line + "\n") // this comes from bufio.Scanner and has no newlines...
}
}
wg.Done()
@@ -154,5 +151,5 @@ func (pr *pipeReader) Read(listener []CommandListener) (string, string, string,
return "", "", "", err
}
return stdout, stderr, stdcombined, nil
return stdout.String(), stderr.String(), stdcombined.String(), nil
}