func ExecuteCommand()

in internal/util/utils.go [56:78]


func ExecuteCommand(cmd string) (stdout, stderr string, err error) {
	hookScript, err := hookScript()
	if err != nil {
		return "", "", err
	}

	// Propagate the env vars from sub-process back to parent process
	defer ExportEnvVars(filepath.Join(WorkDir, ".env"))

	cmd = hookScript + "\n" + cmd

	command := exec.Command("bash", "-ec", cmd)
	sout, serr := bytes.Buffer{}, bytes.Buffer{}
	command.Stdout, command.Stderr = &sout, &serr

	if err := command.Start(); err != nil {
		return sout.String(), serr.String(), err
	}
	if err := command.Wait(); err != nil {
		return sout.String(), serr.String(), err
	}
	return sout.String(), serr.String(), nil
}