forked from gobuffalo/buffalo
/
info.go
102 lines (88 loc) · 2.12 KB
/
info.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
package cmd
import (
"fmt"
"os"
"os/exec"
"github.com/pkg/errors"
"github.com/spf13/cobra"
)
// infoCmd represents the info command
var infoCmd = &cobra.Command{
Use: "info",
Short: "Prints off diagnostic information useful for debugging.",
RunE: func(cmd *cobra.Command, args []string) error {
bb := os.Stdout
bb.WriteString(fmt.Sprintf("### Buffalo Version\n%s\n", Version))
bb.WriteString("\n### Go Version\n")
c := exec.Command("go", "version")
c.Stdout = bb
err := c.Run()
if err != nil {
return errors.WithStack(err)
}
bb.WriteString("\n### Go Env\n")
c = exec.Command("go", "env")
c.Stdout = bb
c.Stderr = bb
c.Run()
bb.WriteString("\n### Node Version\n")
if _, err := exec.LookPath("node"); err == nil {
c = exec.Command("node", "--version")
c.Stdout = bb
c.Stderr = bb
c.Run()
} else {
bb.WriteString("Node Not Found\n")
}
bb.WriteString("\n### NPM Version\n")
if _, err := exec.LookPath("npm"); err == nil {
c = exec.Command("npm", "--version")
c.Stdout = bb
c.Stderr = bb
c.Run()
} else {
bb.WriteString("NPM Not Found\n")
}
bb.WriteString("\n### Dep Status\n")
if _, err := exec.LookPath("dep"); err == nil {
c = exec.Command("dep", "status")
c.Stdout = bb
c.Stderr = bb
c.Run()
} else {
bb.WriteString("dep Not Found\n")
}
bb.WriteString("\n### PostgreSQL Version\n")
if _, err := exec.LookPath("pg_ctl"); err == nil {
c = exec.Command("pg_ctl", "--version")
c.Stdout = bb
c.Stderr = bb
c.Run()
} else {
bb.WriteString("PostgreSQL Not Found\n")
}
bb.WriteString("\n### MySQL Version\n")
if _, err := exec.LookPath("mysql"); err == nil {
c = exec.Command("mysql", "--version")
c.Stdout = bb
c.Stderr = bb
c.Run()
} else {
bb.WriteString("MySQL Not Found\n")
}
bb.WriteString("\n### SQLite Version\n")
if _, err := exec.LookPath("sqlite3"); err == nil {
c = exec.Command("sqlite3", "--version")
c.Stdout = bb
c.Stderr = bb
c.Run()
} else {
bb.WriteString("SQLite Not Found\n")
}
return nil
},
}
func init() {
decorate("info", RootCmd)
RootCmd.AddCommand(infoCmd)
}