github.com/singlemusic/buffalo@v0.16.30/buffalo/cmd/generate/mailer.go (about) 1 package generate 2 3 import ( 4 "context" 5 6 "github.com/gobuffalo/buffalo/genny/mail" 7 "github.com/gobuffalo/flect/name" 8 "github.com/gobuffalo/genny/v2" 9 "github.com/gobuffalo/genny/v2/gogen" 10 "github.com/gobuffalo/meta" 11 "github.com/spf13/cobra" 12 ) 13 14 var mailOptions = struct { 15 dryRun bool 16 *mail.Options 17 }{ 18 Options: &mail.Options{}, 19 } 20 21 // MailCmd for generating mailers 22 var MailCmd = &cobra.Command{ 23 Use: "mailer [name]", 24 Short: "Generate a new mailer for Buffalo", 25 RunE: func(cmd *cobra.Command, args []string) error { 26 mailOptions.App = meta.New(".") 27 mailOptions.Name = name.New(args[0]) 28 gg, err := mail.New(mailOptions.Options) 29 if err != nil { 30 return err 31 } 32 33 run := genny.WetRunner(context.Background()) 34 if mailOptions.dryRun { 35 run = genny.DryRunner(context.Background()) 36 } 37 38 g, err := gogen.Fmt(mailOptions.App.Root) 39 if err != nil { 40 return err 41 } 42 run.With(g) 43 44 gg.With(run) 45 return run.Run() 46 47 }, 48 } 49 50 func init() { 51 MailCmd.Flags().BoolVarP(&mailOptions.dryRun, "dry-run", "d", false, "dry run of the generator") 52 MailCmd.Flags().BoolVar(&mailOptions.SkipInit, "skip-init", false, "skip initializing mailers/") 53 }