package utils import ( "log" "os" "os/exec" "strings" ) func RunSHOUT(stepName, bashFragment string) ([]byte, error) { cmd := exec.Command("sh", "-s") cmd.Stdin = strings.NewReader(bashWrap(bashFragment)) cmd.Env = os.Environ() // log.Printf("Running in background: %v", stepName) return cmd.CombinedOutput() } func RunSH(stepName, bashFragment string) error { cmd := exec.Command("sh", "-s") cmd.Stdin = strings.NewReader(bashWrap(bashFragment)) cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr cmd.Env = os.Environ() log.Printf("Running: %v (%v)", stepName, bashFragment) return cmd.Run() } func bashWrap(cmd string) string { return ` set -o errexit set -o nounset ` + cmd + ` ` }