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  }