mirror of
https://github.com/mudler/luet.git
synced 2025-07-05 19:46:48 +00:00
38 lines
704 B
Go
38 lines
704 B
Go
|
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 + `
|
||
|
`
|
||
|
}
|