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 }