github.com/singlemusic/buffalo@v0.16.30/buffalo/cmd/generate/task.go (about)

     1  package generate
     2  
     3  import (
     4  	"context"
     5  	"os"
     6  
     7  	"github.com/gobuffalo/buffalo/genny/grift"
     8  	"github.com/gobuffalo/genny/v2"
     9  	"github.com/gobuffalo/genny/v2/gogen"
    10  	"github.com/spf13/cobra"
    11  )
    12  
    13  var taskOptions = struct {
    14  	dryRun bool
    15  	*grift.Options
    16  }{
    17  	Options: &grift.Options{},
    18  }
    19  
    20  //TaskCmd is the command called with the generate grift cli.
    21  var TaskCmd = &cobra.Command{
    22  	Use:     "task [name]",
    23  	Aliases: []string{"t", "grift"},
    24  	Short:   "Generate a grift task",
    25  	RunE: func(cmd *cobra.Command, args []string) error {
    26  		run := genny.WetRunner(context.Background())
    27  		if taskOptions.dryRun {
    28  			run = genny.DryRunner(context.Background())
    29  		}
    30  
    31  		opts := taskOptions.Options
    32  		opts.Args = args
    33  		g, err := grift.New(opts)
    34  		if err != nil {
    35  			return err
    36  		}
    37  		run.With(g)
    38  
    39  		pwd, _ := os.Getwd()
    40  		g, err = gogen.Fmt(pwd)
    41  		if err != nil {
    42  			return err
    43  		}
    44  		run.With(g)
    45  
    46  		return run.Run()
    47  	},
    48  }
    49  
    50  func init() {
    51  	TaskCmd.Flags().BoolVarP(&taskOptions.dryRun, "dry-run", "d", false, "dry run of the generator")
    52  }