package main import ( "fmt" "log" "os" "os/exec" "runtime" ) // if Fatal err func ifFerr(msg string, err error) { if err != nil { log.Fatalf("%s -- %s\n", msg, err) } } func availableProjectTypes(adir string) ([]string, error) { var res []string sf, err := os.Open(adir) if err != nil { return nil, err } entries, err := sf.ReadDir(0) if err != nil { return nil, err } for _, e := range entries { if e.IsDir() { if e.Name() == ".git" { continue } res = append(res, e.Name()) } } return res, nil } func isConfigAvailable(types []string, aPType string) bool { res := false for _, v := range types { if v == aPType { res = true break } } return res } func isSSHAvailable() bool { //rv := false //var res string var resb, resb2 []byte var err error system := runtime.GOOS switch system { case "linux": resb, err = exec.Command("which", "ssh").Output() ifFerr("Unable to test for ssh on linux", err) resb2, _ = exec.Command("which", "ssh3").Output() case "window": resb, err = exec.Command("where", "ssh").Output() ifFerr("Unable to test for ssh on windows", err) resb2, _ = exec.Command("which", "ssh3").Output() } fmt.Println("ssh is at: ", string(resb)) fmt.Println("ssh - len resb: ", len(resb)) fmt.Println("ssh3 - len resb2: ", len(resb2)) return len(resb) != 0 }