package util import ( "os/exec" ) func Execute(name string, arg ...string) (*exec.Cmd, string, error) { cmd := exec.Command(name, arg...) combinedOutput, err := cmd.CombinedOutput() if err != nil { return nil, string(combinedOutput), err } return cmd, string(combinedOutput), nil } func ExecuteWithEnvAndDir(envs []string, dir string, name string, arg ...string) (*exec.Cmd, string, error) { cmd := exec.Command(name, arg...) cmd.Dir = dir for _, env := range envs { cmd.Env = append(cmd.Env, env) } combinedOutput, err := cmd.CombinedOutput() if err != nil { return nil, string(combinedOutput), err } return cmd, string(combinedOutput), nil }