github.com/argoproj/argo-cd/v3@v3.2.1/test/e2e/fixture/cmd.go (about)

     1  package fixture
     2  
     3  import (
     4  	"os"
     5  	"os/exec"
     6  	"strings"
     7  
     8  	argoexec "github.com/argoproj/argo-cd/v3/util/exec"
     9  )
    10  
    11  func Run(workDir, name string, args ...string) (string, error) {
    12  	return RunWithStdin("", workDir, name, args...)
    13  }
    14  
    15  func RunWithStdin(stdin, workDir, name string, args ...string) (string, error) {
    16  	cmd := exec.Command(name, args...)
    17  	if stdin != "" {
    18  		cmd.Stdin = strings.NewReader(stdin)
    19  	}
    20  	cmd.Env = os.Environ()
    21  	cmd.Dir = workDir
    22  
    23  	return argoexec.RunCommandExt(cmd, argoexec.CmdOpts{})
    24  }
    25  
    26  func RunWithStdinWithRedactor(stdin, workDir, name string, redactor func(string) string, args ...string) (string, error) {
    27  	cmd := exec.Command(name, args...)
    28  	if stdin != "" {
    29  		cmd.Stdin = strings.NewReader(stdin)
    30  	}
    31  	cmd.Env = os.Environ()
    32  	cmd.Dir = workDir
    33  
    34  	return argoexec.RunCommandExt(cmd, argoexec.CmdOpts{Redactor: redactor})
    35  }