func RunCmd(command string, arg ...string) string {
	cmd := exec.Command(command)
	for _, arg := range arg {
		cmd.Args = append(cmd.Args, arg)
	}
	var o bytes.Buffer
	cmd.Stdout = &o  
	err := cmd.Run()
	CheckErr(err)
	return o.String()
}
RunCmd - runs a command on the system and prints the result
TODO: document
package utils
import (
	"bytes"
	"fmt"
	"io"
	"io/ioutil"
	"log"
	"math"
	"math/rand"
	"net/http"
	"os"
	"os/exec"
	"os/user"
	"strings"
	"syscall"
	"time"
	ct "github.com/daviddengcn/go-colortext"
	"github.com/gocolly/colly"
	"github.com/shirou/gopsutil/cpu"
	"github.com/shirou/gopsutil/host"
	"github.com/shirou/gopsutil/load"
	"github.com/shirou/gopsutil/mem"
	"golang.org/x/crypto/ssh/terminal"
)
func BytesToGigabytes(bytes uint64) float64 {
	const conversionFactor = 1000000000
	result := float64(bytes) / conversionFactor
	result = float64(math.Round(result*100) / 100)
	return result
}
func CheckTarget(target string) {
	if target == "" {  
		CheckErr(fmt.Errorf("target cannot be empty when performing this task"))
	}
}
func CheckErr(err error) {
	if err != nil {  
		ct.Foreground(ct.Red, true)  
		fmt.Fprintln(os.Stderr, err)
		os.Exit(1)
	}
}
func CheckSudo() {
	user, _ := user.Current()
	if !strings.Contains(user.Username, "root") {
		CheckErr(fmt.Errorf("cannot run this task without root/sudo"))
	}
}