github.com/ashleymcnamara/buffalo@v0.8.0/buffalo/cmd/generate/action.go (about) 1 package generate 2 3 import ( 4 "errors" 5 "os" 6 7 "github.com/gobuffalo/buffalo/generators/action" 8 "github.com/gobuffalo/makr" 9 "github.com/markbates/inflect" 10 "github.com/spf13/cobra" 11 ) 12 13 //ActionCmd is the cmd that generates actions. 14 var ActionCmd = &cobra.Command{ 15 Use: "action [name] [actionName...]", 16 Aliases: []string{"a", "actions"}, 17 Short: "Generates new action(s)", 18 RunE: func(cmd *cobra.Command, args []string) error { 19 if len(args) < 2 { 20 return errors.New("you should provide action name and handler name at least") 21 } 22 23 if _, err := os.Stat("actions"); err != nil { 24 return errors.New("actions directory not found, ensure you're inside your buffalo folder") 25 } 26 27 name := args[0] 28 29 data := makr.Data{ 30 "filename": inflect.Underscore(name), 31 "namespace": inflect.Camelize(name), 32 } 33 34 g, err := action.New(name, args[1:], data) 35 if err != nil { 36 return err 37 } 38 39 return g.Run(".", data) 40 }, 41 }