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  }