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