package main import ( "fmt" "os" "os/exec" "runtime" ) func isInstalled(name string) bool { var cmd *exec.Cmd // check for the operating system if runtime.GOOS == "windows" { // 'where' command is used on Windows to locate executables cmd = exec.Command("where.exe", name) } else { // 'command' is used on Unix systems cmd = exec.Command("/bin/sh", "-c", "command -v "+name) } if err := cmd.Run(); err != nil { return false } return true } func subExecute(program string, args ...string) ([]byte, error) { cmd := exec.Command(program, args...) cmd.Stdin = os.Stdin cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr err := cmd.Run() if err != nil { fmt.Printf("%v\n", err) } return cmd.CombinedOutput() }