func AddIfNotContained(s []string, e string) (sout []string) {
	if (!Contains(s, e)) && (e != "") {
		s = append(s, e)
	}
	return s
}
AddIfNotContained adds a string to a slice if it is not contained in it and not empty
package utils
import (
	"fmt"
	"log"
	exec "os/exec"
	"sort"
	"strings"
)
func PrintExec(cmd []string, print bool) error {
	if print {
		fmt.Println(cmd)
	}
	output, err := Exec(cmd)
	if err != nil {
		return err
	}
	if print {
		fmt.Print(output)
	}
	return nil
}
func Exec(cmd []string) (string, error) {
	binary := cmd[0]
	_, err := exec.LookPath(binary)
	if err != nil {
		return "", err
	}
	output, err := exec.Command(binary, cmd[1:]...).CombinedOutput()
	if err != nil {
		return "", fmt.Errorf(string(output))
	}
	return string(output), nil
}