Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package arkade for openSUSE:Factory checked 
in at 2023-09-15 22:05:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/arkade (Old)
 and      /work/SRC/openSUSE:Factory/.arkade.new.1766 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "arkade"

Fri Sep 15 22:05:13 2023 rev:17 rq:1111536 version:0.10.7

Changes:
--------
--- /work/SRC/openSUSE:Factory/arkade/arkade.changes    2023-09-14 
16:28:07.519854257 +0200
+++ /work/SRC/openSUSE:Factory/.arkade.new.1766/arkade.changes  2023-09-15 
22:10:30.075917609 +0200
@@ -1,0 +2,20 @@
+Fri Sep 15 09:27:07 UTC 2023 - ka...@b1-systems.de
+
+- Update to version 0.10.7:
+  * Fix typo in test
+  * Update vendor
+  * Update to v2 of go-execute
+
+-------------------------------------------------------------------
+Thu Sep 14 12:39:32 UTC 2023 - ka...@b1-systems.de
+
+- Update to version 0.10.6:
+  * Fix Windows template for K9s
+
+-------------------------------------------------------------------
+Thu Sep 14 12:38:08 UTC 2023 - ka...@b1-systems.de
+
+- Update to version 0.10.5:
+  * Fix jq executable name for release 1.7
+
+-------------------------------------------------------------------

Old:
----
  arkade-0.10.4.obscpio

New:
----
  arkade-0.10.7.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ arkade.spec ++++++
--- /var/tmp/diff_new_pack.TvmkDI/_old  2023-09-15 22:10:31.591971815 +0200
+++ /var/tmp/diff_new_pack.TvmkDI/_new  2023-09-15 22:10:31.595971958 +0200
@@ -19,7 +19,7 @@
 %define __arch_install_post export NO_BRP_STRIP_DEBUG=true
 
 Name:           arkade
-Version:        0.10.4
+Version:        0.10.7
 Release:        0
 Summary:        Open Source Kubernetes Marketplace
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.TvmkDI/_old  2023-09-15 22:10:31.619972816 +0200
+++ /var/tmp/diff_new_pack.TvmkDI/_new  2023-09-15 22:10:31.623972958 +0200
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/alexellis/arkade</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">0.10.4</param>
+    <param name="revision">0.10.7</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="changesgenerate">enable</param>
     <param name="versionrewrite-pattern">v(.*)</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.TvmkDI/_old  2023-09-15 22:10:31.639973531 +0200
+++ /var/tmp/diff_new_pack.TvmkDI/_new  2023-09-15 22:10:31.643973674 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/alexellis/arkade</param>
-              <param 
name="changesrevision">944a86bc3a649fc220992df360d67a39a1b498cf</param></service></servicedata>
+              <param 
name="changesrevision">fec33ae658a975b59aa645f23d48e74930f43dda</param></service></servicedata>
 (No newline at EOF)
 

++++++ arkade-0.10.4.obscpio -> arkade-0.10.7.obscpio ++++++
/work/SRC/openSUSE:Factory/arkade/arkade-0.10.4.obscpio 
/work/SRC/openSUSE:Factory/.arkade.new.1766/arkade-0.10.7.obscpio differ: char 
50, line 1

++++++ arkade.obsinfo ++++++
--- /var/tmp/diff_new_pack.TvmkDI/_old  2023-09-15 22:10:31.679974961 +0200
+++ /var/tmp/diff_new_pack.TvmkDI/_new  2023-09-15 22:10:31.683975104 +0200
@@ -1,5 +1,5 @@
 name: arkade
-version: 0.10.4
-mtime: 1694638093
-commit: 944a86bc3a649fc220992df360d67a39a1b498cf
+version: 0.10.7
+mtime: 1694711385
+commit: fec33ae658a975b59aa645f23d48e74930f43dda
 

++++++ vendor.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/alexellis/go-execute/LICENSE 
new/vendor/github.com/alexellis/go-execute/LICENSE
--- old/vendor/github.com/alexellis/go-execute/LICENSE  2023-09-14 
06:49:18.000000000 +0200
+++ new/vendor/github.com/alexellis/go-execute/LICENSE  1970-01-01 
01:00:00.000000000 +0100
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2019 Inlets
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/alexellis/go-execute/pkg/v1/exec.go 
new/vendor/github.com/alexellis/go-execute/pkg/v1/exec.go
--- old/vendor/github.com/alexellis/go-execute/pkg/v1/exec.go   2023-09-14 
06:49:18.000000000 +0200
+++ new/vendor/github.com/alexellis/go-execute/pkg/v1/exec.go   1970-01-01 
01:00:00.000000000 +0100
@@ -1,134 +0,0 @@
-package execute
-
-import (
-       "bytes"
-       "fmt"
-       "io"
-       "os"
-       "os/exec"
-       "strings"
-)
-
-type ExecTask struct {
-       Command string
-       Args    []string
-       Shell   bool
-       Env     []string
-       Cwd     string
-
-       // Stdin connect a reader to stdin for the command
-       // being executed.
-       Stdin io.Reader
-
-       // StreamStdio prints stdout and stderr directly to os.Stdout/err as
-       // the command runs.
-       StreamStdio bool
-
-       // PrintCommand prints the command before executing
-       PrintCommand bool
-}
-
-type ExecResult struct {
-       Stdout   string
-       Stderr   string
-       ExitCode int
-}
-
-func (et ExecTask) Execute() (ExecResult, error) {
-       argsSt := ""
-       if len(et.Args) > 0 {
-               argsSt = strings.Join(et.Args, " ")
-       }
-
-       if et.PrintCommand {
-               fmt.Println("exec: ", et.Command, argsSt)
-       }
-
-       var cmd *exec.Cmd
-
-       if et.Shell {
-               var args []string
-               if len(et.Args) == 0 {
-                       startArgs := strings.Split(et.Command, " ")
-                       script := strings.Join(startArgs, " ")
-                       args = append([]string{"-c"}, fmt.Sprintf("%s", script))
-
-               } else {
-                       script := strings.Join(et.Args, " ")
-                       args = append([]string{"-c"}, fmt.Sprintf("%s %s", 
et.Command, script))
-
-               }
-
-               cmd = exec.Command("/bin/bash", args...)
-       } else {
-               if strings.Index(et.Command, " ") > 0 {
-                       parts := strings.Split(et.Command, " ")
-                       command := parts[0]
-                       args := parts[1:]
-                       cmd = exec.Command(command, args...)
-
-               } else {
-                       cmd = exec.Command(et.Command, et.Args...)
-               }
-       }
-
-       cmd.Dir = et.Cwd
-
-       if len(et.Env) > 0 {
-               overrides := map[string]bool{}
-               for _, env := range et.Env {
-                       key := strings.Split(env, "=")[0]
-                       overrides[key] = true
-                       cmd.Env = append(cmd.Env, env)
-               }
-
-               for _, env := range os.Environ() {
-                       key := strings.Split(env, "=")[0]
-
-                       if _, ok := overrides[key]; !ok {
-                               cmd.Env = append(cmd.Env, env)
-                       }
-               }
-       }
-       if et.Stdin != nil {
-               cmd.Stdin = et.Stdin
-       }
-
-       stdoutBuff := bytes.Buffer{}
-       stderrBuff := bytes.Buffer{}
-
-       var stdoutWriters io.Writer
-       var stderrWriters io.Writer
-
-       if et.StreamStdio {
-               stdoutWriters = io.MultiWriter(os.Stdout, &stdoutBuff)
-               stderrWriters = io.MultiWriter(os.Stderr, &stderrBuff)
-       } else {
-               stdoutWriters = &stdoutBuff
-               stderrWriters = &stderrBuff
-       }
-
-       cmd.Stdout = stdoutWriters
-       cmd.Stderr = stderrWriters
-
-       startErr := cmd.Start()
-
-       if startErr != nil {
-               return ExecResult{}, startErr
-       }
-
-       exitCode := 0
-       execErr := cmd.Wait()
-       if execErr != nil {
-               if exitError, ok := execErr.(*exec.ExitError); ok {
-
-                       exitCode = exitError.ExitCode()
-               }
-       }
-
-       return ExecResult{
-               Stdout:   string(stdoutBuff.Bytes()),
-               Stderr:   string(stderrBuff.Bytes()),
-               ExitCode: exitCode,
-       }, nil
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/alexellis/go-execute/v2/.DEREK.yml 
new/vendor/github.com/alexellis/go-execute/v2/.DEREK.yml
--- old/vendor/github.com/alexellis/go-execute/v2/.DEREK.yml    1970-01-01 
01:00:00.000000000 +0100
+++ new/vendor/github.com/alexellis/go-execute/v2/.DEREK.yml    2023-09-15 
11:27:07.000000000 +0200
@@ -0,0 +1 @@
+redirect: https://raw.githubusercontent.com/openfaas/faas/master/.DEREK.yml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/alexellis/go-execute/v2/.gitignore 
new/vendor/github.com/alexellis/go-execute/v2/.gitignore
--- old/vendor/github.com/alexellis/go-execute/v2/.gitignore    1970-01-01 
01:00:00.000000000 +0100
+++ new/vendor/github.com/alexellis/go-execute/v2/.gitignore    2023-09-15 
11:27:07.000000000 +0200
@@ -0,0 +1,2 @@
+/go-execute
+main.go
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/alexellis/go-execute/v2/LICENSE 
new/vendor/github.com/alexellis/go-execute/v2/LICENSE
--- old/vendor/github.com/alexellis/go-execute/v2/LICENSE       1970-01-01 
01:00:00.000000000 +0100
+++ new/vendor/github.com/alexellis/go-execute/v2/LICENSE       2023-09-15 
11:27:07.000000000 +0200
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2023 Alex Ellis
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/alexellis/go-execute/v2/Makefile 
new/vendor/github.com/alexellis/go-execute/v2/Makefile
--- old/vendor/github.com/alexellis/go-execute/v2/Makefile      1970-01-01 
01:00:00.000000000 +0100
+++ new/vendor/github.com/alexellis/go-execute/v2/Makefile      2023-09-15 
11:27:07.000000000 +0200
@@ -0,0 +1,2 @@
+all:
+       go test -v ./...
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/alexellis/go-execute/v2/README.md 
new/vendor/github.com/alexellis/go-execute/v2/README.md
--- old/vendor/github.com/alexellis/go-execute/v2/README.md     1970-01-01 
01:00:00.000000000 +0100
+++ new/vendor/github.com/alexellis/go-execute/v2/README.md     2023-09-15 
11:27:07.000000000 +0200
@@ -0,0 +1,141 @@
+## go-execute
+
+A wrapper for Go's command execution packages.
+
+`go get github.com/alexellis/go-execute/v2`
+
+## Docs
+
+See docs at pkg.go.dev: 
[github.com/alexellis/go-execute](https://pkg.go.dev/github.com/alexellis/go-execute)
+
+## go-execute users
+
+[Used by dozens of projects as identified by 
GitHub](https://github.com/alexellis/go-execute/network/dependents), notably:
+
+* [alexellis/arkade](https://github.com/alexellis/arkade)
+* [openfaas/faas-cli](https://github.com/openfaas/faas-cli)
+* [inlets/inletsctl](https://github.com/inlets/inletsctl)
+* [inlets/cloud-provision](https://github.com/inlets/cloud-provision)
+* [alexellis/k3sup](https://github.com/alexellis/k3sup)
+* [openfaas/connector-sdk](https://github.com/openfaas/connector-sdk)
+* 
[openfaas-incubator/ofc-bootstrap](https://github.com/openfaas-incubator/ofc-bootstrap)
+
+Community examples:
+
+* [dokku/lambda-builder](https://github.com/dokku/lambda-builder)
+* [027xiguapi/pear-rec](https://github.com/027xiguapi/pear-rec)
+* [cnrancher/autok3s](https://github.com/cnrancher/autok3s)
+* [ainsleydev/hupi](https://github.com/ainsleydev/hupi)
+* [andiwork/andictl](https://github.com/andiwork/andictl)
+* [tonit/rekind](https://github.com/tonit/rekind)
+* [lucasrod16/ec2-k3s](https://github.com/lucasrod16/ec2-k3s)
+* [seaweedfs/seaweed-up](https://github.com/seaweedfs/seaweed-up)
+* [jsiebens/inlets-on-fly](https://github.com/jsiebens/inlets-on-fly)
+* [jsiebens/hashi-up](https://github.com/jsiebens/hashi-up)
+* [edgego/ecm](https://github.com/edgego/ecm)
+* 
[ministryofjustice/cloud-platform-terraform-upgrade](https://github.com/ministryofjustice/cloud-platform-terraform-upgrade)
+* 
[mattcanty/go-ffmpeg-transcode](https://github.com/mattcanty/go-ffmpeg-transcode)
+* [Popoola-Opeyemi/meeseeks](https://github.com/Popoola-Opeyemi/meeseeks)
+* [aidun/minicloud](https://github.com/aidun/minicloud)
+
+Feel free to add a link to your own projects in a PR.
+
+## Main options
+
+* `DisableStdioBuffer` - Discard Stdio, rather than buffering into memory
+* `StreamStdio` - Stream stderr and stdout to the console, useful for 
debugging and testing
+* `Shell` - Use bash as a shell to execute the command, rather than exec a 
binary directly
+* `StdOutWriter` - an additional writer for stdout, useful for mutating or 
filtering the output
+* `StdErrWriter` - an additional writer for stderr, useful for mutating or 
filtering the output
+* `PrintCommand` - print the command to stdout before executing it
+
+## Example of exec without streaming to STDIO
+
+This example captures the values from stdout and stderr without relaying to 
the console. This means the values can be inspected and used for automation.
+
+```golang
+package main
+
+import (
+       "fmt"
+
+       execute "github.com/alexellis/go-execute/v2"
+)
+
+func main() {
+       cmd := execute.ExecTask{
+               Command:     "docker",
+               Args:        []string{"version"},
+               StreamStdio: false,
+       }
+
+       res, err := cmd.Execute()
+       if err != nil {
+               panic(err)
+       }
+
+       if res.ExitCode != 0 {
+               panic("Non-zero exit code: " + res.Stderr)
+       }
+
+       fmt.Printf("stdout: %s, stderr: %s, exit-code: %d\n", res.Stdout, 
res.Stderr, res.ExitCode)
+}
+```
+
+
+## Example with "shell" and exit-code 0
+
+```golang
+package main
+
+import (
+       "fmt"
+
+       execute "github.com/alexellis/go-execute/v2"
+)
+
+func main() {
+       ls := execute.ExecTask{
+               Command: "ls",
+               Args:    []string{"-l"},
+               Shell:   true,
+       }
+       res, err := ls.Execute()
+       if err != nil {
+               panic(err)
+       }
+
+       fmt.Printf("stdout: %q, stderr: %q, exit-code: %d\n", res.Stdout, 
res.Stderr, res.ExitCode)
+}
+```
+
+## Example with "shell" and exit-code 1
+
+```golang
+package main
+
+import (
+       "fmt"
+
+       execute "github.com/alexellis/go-execute/v2"
+)
+
+func main() {
+       ls := execute.ExecTask{
+               Command: "exit 1",
+               Shell:   true,
+       }
+       res, err := ls.Execute()
+       if err != nil {
+               panic(err)
+       }
+
+       fmt.Printf("stdout: %q, stderr: %q, exit-code: %d\n", res.Stdout, 
res.Stderr, res.ExitCode)
+}
+```
+
+## Contributing
+
+Commits must be signed off with `git commit -s`
+
+License: MIT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/alexellis/go-execute/v2/exec.go 
new/vendor/github.com/alexellis/go-execute/v2/exec.go
--- old/vendor/github.com/alexellis/go-execute/v2/exec.go       1970-01-01 
01:00:00.000000000 +0100
+++ new/vendor/github.com/alexellis/go-execute/v2/exec.go       2023-09-15 
11:27:07.000000000 +0200
@@ -0,0 +1,190 @@
+package execute
+
+import (
+       "bytes"
+       "context"
+       "fmt"
+       "io"
+       "os"
+       "os/exec"
+       "strings"
+)
+
+type ExecTask struct {
+       // Command is the command to execute. This can be the path to an 
executable
+       // or the executable with arguments. The arguments are detected by 
looking for
+       // a space.
+       //
+       // Examples:
+       //  - Just a binary executable: `/bin/ls`
+       //  - Binary executable with arguments: `/bin/ls -la /`
+       Command string
+
+       // Args are the arguments to pass to the command. These are ignored if 
the
+       // Command contains arguments.
+       Args []string
+
+       // Shell run the command in a bash shell.
+       // Note that the system must have `bash` installed in the PATH or in 
/bin/bash
+       Shell bool
+
+       // Env is a list of environment variables to add to the current 
environment,
+       // these are used to override any existing environment variables.
+       Env []string
+
+       // Cwd is the working directory for the command
+       Cwd string
+
+       // Stdin connect a reader to stdin for the command
+       // being executed.
+       Stdin io.Reader
+
+       // PrintCommand prints the command before executing
+       PrintCommand bool
+
+       // StreamStdio prints stdout and stderr directly to os.Stdout/err as
+       // the command runs.
+       StreamStdio bool
+
+       // DisableStdioBuffer prevents any output from being saved in the
+       // TaskResult, which is useful for when the result is very large, or
+       // when you want to stream the output to another writer exclusively.
+       DisableStdioBuffer bool
+
+       // StdoutWriter when set will receive a copy of stdout from the command
+       StdOutWriter io.Writer
+
+       // StderrWriter when set will receive a copy of stderr from the command
+       StdErrWriter io.Writer
+}
+
+type ExecResult struct {
+       Stdout    string
+       Stderr    string
+       ExitCode  int
+       Cancelled bool
+}
+
+func (et ExecTask) Execute(ctx context.Context) (ExecResult, error) {
+       argsSt := ""
+       if len(et.Args) > 0 {
+               argsSt = strings.Join(et.Args, " ")
+       }
+
+       if et.PrintCommand {
+               fmt.Println("exec: ", et.Command, argsSt)
+       }
+
+       // don't try to run if the context is already cancelled
+       if ctx.Err() != nil {
+               return ExecResult{
+                       // the exec package returns -1 for cancelled commands
+                       ExitCode:  -1,
+                       Cancelled: ctx.Err() == context.Canceled,
+               }, ctx.Err()
+       }
+
+       var command string
+       var commandArgs []string
+       if et.Shell {
+
+               // On a NixOS system, /bin/bash doesn't exist at /bin/bash
+               // the default behavior of exec.Command is to look for the
+               // executable in PATH.
+
+               command = "bash"
+               // There is a chance that PATH is not populate or propagated, 
therefore
+               // when bash cannot be resolved, set it to /bin/bash instead.
+               if _, err := exec.LookPath(command); err != nil {
+                       command = "/bin/bash"
+               }
+
+               if len(et.Args) == 0 {
+                       // use Split and Join to remove any extra whitespace?
+                       startArgs := strings.Split(et.Command, " ")
+                       script := strings.Join(startArgs, " ")
+                       commandArgs = append([]string{"-c"}, script)
+
+               } else {
+                       script := strings.Join(et.Args, " ")
+                       commandArgs = append([]string{"-c"}, fmt.Sprintf("%s 
%s", et.Command, script))
+               }
+       } else {
+               if strings.Contains(et.Command, " ") {
+                       parts := strings.Split(et.Command, " ")
+                       command = parts[0]
+                       commandArgs = parts[1:]
+               } else {
+                       command = et.Command
+                       commandArgs = et.Args
+               }
+       }
+
+       cmd := exec.CommandContext(ctx, command, commandArgs...)
+       cmd.Dir = et.Cwd
+
+       if len(et.Env) > 0 {
+               overrides := map[string]bool{}
+               for _, env := range et.Env {
+                       key := strings.Split(env, "=")[0]
+                       overrides[key] = true
+                       cmd.Env = append(cmd.Env, env)
+               }
+
+               for _, env := range os.Environ() {
+                       key := strings.Split(env, "=")[0]
+
+                       if _, ok := overrides[key]; !ok {
+                               cmd.Env = append(cmd.Env, env)
+                       }
+               }
+       }
+       if et.Stdin != nil {
+               cmd.Stdin = et.Stdin
+       }
+
+       stdoutBuff := bytes.Buffer{}
+       stderrBuff := bytes.Buffer{}
+
+       var stdoutWriters []io.Writer
+       var stderrWriters []io.Writer
+
+       // Always capture to a buffer
+       stdoutWriters = append(stdoutWriters, &stdoutBuff)
+       stderrWriters = append(stderrWriters, &stderrBuff)
+
+       if et.StreamStdio {
+               stdoutWriters = append(stdoutWriters, os.Stdout)
+               stderrWriters = append(stderrWriters, os.Stderr)
+       }
+
+       if et.StdOutWriter != nil {
+               stdoutWriters = append(stdoutWriters, et.StdOutWriter)
+       }
+       if et.StdErrWriter != nil {
+               stderrWriters = append(stderrWriters, et.StdErrWriter)
+       }
+
+       cmd.Stdout = io.MultiWriter(stdoutWriters...)
+       cmd.Stderr = io.MultiWriter(stderrWriters...)
+
+       startErr := cmd.Start()
+       if startErr != nil {
+               return ExecResult{}, startErr
+       }
+
+       exitCode := 0
+       execErr := cmd.Wait()
+       if execErr != nil {
+               if exitError, ok := execErr.(*exec.ExitError); ok {
+                       exitCode = exitError.ExitCode()
+               }
+       }
+
+       return ExecResult{
+               Stdout:    stdoutBuff.String(),
+               Stderr:    stderrBuff.String(),
+               ExitCode:  exitCode,
+               Cancelled: ctx.Err() == context.Canceled,
+       }, ctx.Err()
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt
--- old/vendor/modules.txt      2023-09-14 06:49:18.000000000 +0200
+++ new/vendor/modules.txt      2023-09-15 11:27:07.000000000 +0200
@@ -6,7 +6,9 @@
 github.com/VividCortex/ewma
 # github.com/alexellis/go-execute v0.6.0
 ## explicit; go 1.19
-github.com/alexellis/go-execute/pkg/v1
+# github.com/alexellis/go-execute/v2 v2.0.0
+## explicit; go 1.20
+github.com/alexellis/go-execute/v2
 # github.com/cheggaaa/pb/v3 v3.1.4
 ## explicit; go 1.17
 github.com/cheggaaa/pb/v3

Reply via email to