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, "", err
	}
	return cmd, string(combinedOutput), nil
}

func ExecuteWithPath(path string, name string, arg ...string) (*exec.Cmd, error) {
	cmd := exec.Command(name, arg...)
	cmd.Dir = path
	err := cmd.Start()
	if err != nil {
		return nil, err
	} else {
		return cmd, nil
	}
}

func KillProcessByPID(pid string) error {
	cmd := exec.Command("kill", "-9", pid)
	err := cmd.Run()
	if err != nil {
		return err
	}
	return nil
}