74 lines
1.3 KiB
Go
74 lines
1.3 KiB
Go
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
|
|
}
|