From 40aa40fc76231d2c9ee681be5456b26d4255f123 Mon Sep 17 00:00:00 2001 From: xhd2015 Date: Mon, 16 Sep 2024 15:40:01 +0800 Subject: [PATCH] add stdin to cmd --- cmd/xgo/version.go | 4 ++-- support/cmd/cmd.go | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/cmd/xgo/version.go b/cmd/xgo/version.go index c329e6cc..4de0950a 100644 --- a/cmd/xgo/version.go +++ b/cmd/xgo/version.go @@ -4,8 +4,8 @@ import "fmt" // auto updated const VERSION = "1.0.48" -const REVISION = "ee7e3078596587e9734a1e6f208d258b8c6fa090+1" -const NUMBER = 305 +const REVISION = "e82e0eba1db860999c91f1e94af190e17e1c9ce5+1" +const NUMBER = 306 // manually updated const CORE_VERSION = "1.0.48" diff --git a/support/cmd/cmd.go b/support/cmd/cmd.go index 1d67388f..448d894b 100644 --- a/support/cmd/cmd.go +++ b/support/cmd/cmd.go @@ -21,6 +21,7 @@ type CmdBuilder struct { dir string debug bool ignoreError bool + stdin io.Reader stdout io.Writer stderr io.Writer } @@ -58,6 +59,10 @@ func (c *CmdBuilder) Dir(dir string) *CmdBuilder { c.dir = dir return c } +func (c *CmdBuilder) Stdin(stdin io.Reader) *CmdBuilder { + c.stdin = stdin + return c +} func (c *CmdBuilder) Stdout(stdout io.Writer) *CmdBuilder { c.stdout = stdout @@ -126,6 +131,9 @@ func cmdExecEnv(cmd string, args []string, env []string, dir string, useStdout b execCmd := exec.Command(cmd, args...) execCmd.Stderr = stderr + if c != nil { + execCmd.Stdin = c.stdin + } if len(env) > 0 { execCmd.Env = os.Environ() execCmd.Env = append(execCmd.Env, env...) @@ -138,6 +146,7 @@ func cmdExecEnv(cmd string, args []string, env []string, dir string, useStdout b execCmd.Stdout = os.Stdout return "", execCmd.Run() } + out, err := execCmd.Output() outStr := strings.TrimSuffix(string(out), "\n") if err != nil {