func runCommand()

in tools/functional_test/src/runtest/main.go [56:82]


func runCommand(name string, args ...string) (err error, stdout string, stderr string) {
	expandedName, expandedArgs := expandCommand(name, args...)
	if *verbose {
		originalCommand := fmt.Sprintf("%v", append([]string{name}, args...))
		expandedCommand := fmt.Sprintf("%v", append([]string{expandedName}, expandedArgs...))
		if originalCommand == expandedCommand {
			info("Running command: %s", originalCommand)
		} else {
			info("Running command (original): %s", originalCommand)
			info("Running command (expanded): %s", expandedCommand)
		}
	}

	cmd := exec.Command(expandedName, expandedArgs...)
	var stdoutBuffer bytes.Buffer
	var stderrBuffer bytes.Buffer
	cmd.Stdout = &stdoutBuffer
	cmd.Stderr = &stderrBuffer
	err = cmd.Run()
	stdout = stdoutBuffer.String()
	stderr = stderrBuffer.String()
	if *verbose {
		commandOutput("STDOUT", stdout)
		commandOutput("STDERR", stderr)
	}
	return
}