github.com/cheikhshift/buffalo@v0.9.5/buffalo/cmd/generate/task.go (about) 1 package generate 2 3 import ( 4 "errors" 5 "fmt" 6 "strings" 7 8 "github.com/gobuffalo/buffalo/generators/grift" 9 "github.com/gobuffalo/makr" 10 "github.com/markbates/inflect" 11 "github.com/spf13/cobra" 12 ) 13 14 //TaskCmd is the command called with the generate grift cli. 15 var TaskCmd = &cobra.Command{ 16 Use: "task [name]", 17 Aliases: []string{"t", "grift"}, 18 Short: "Generates a grift task", 19 RunE: func(cmd *cobra.Command, args []string) error { 20 21 if len(args) < 1 { 22 return errors.New("you need to provide a name for the grift tasks") 23 } 24 25 var parts []string 26 plain := strings.Contains(args[0], ":") == false 27 filename := fmt.Sprintf("%v.go", inflect.Underscore(args[0])) 28 29 if !plain { 30 parts = strings.Split(args[0], ":") 31 filename = fmt.Sprintf("%v.go", inflect.Underscore(parts[len(parts)-1])) 32 } 33 34 data := makr.Data{ 35 "name": args[0], 36 "taskName": inflect.Underscore(args[0]), 37 "filename": filename, 38 "plainTask": plain, 39 "parts": parts, 40 "last": len(parts) - 1, 41 } 42 43 g, err := grift.New(data) 44 if err != nil { 45 return err 46 } 47 48 return g.Run(".", data) 49 }, 50 }