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  }