github.com/gobuffalo/buffalo-cli/v2@v2.0.0-alpha.15.0.20200919213536-a7350c8e6799/cli/internal/plugins/grifts/generator/generator.go (about)

     1  package generator
     2  
     3  import (
     4  	"context"
     5  
     6  	"github.com/gobuffalo/buffalo-cli/v2/cli/cmds/generate"
     7  	"github.com/gobuffalo/genny/v2"
     8  	"github.com/gobuffalo/genny/v2/gogen"
     9  	"github.com/gobuffalo/plugins"
    10  	"github.com/gobuffalo/plugins/plugcmd"
    11  	"github.com/gobuffalo/plugins/plugprint"
    12  )
    13  
    14  var _ generate.Generator = &Generator{}
    15  var _ plugcmd.Aliaser = Generator{}
    16  var _ plugcmd.Namer = Generator{}
    17  var _ plugins.Plugin = Generator{}
    18  var _ plugprint.Describer = Generator{}
    19  
    20  type Generator struct{}
    21  
    22  func (Generator) PluginName() string {
    23  	return "grifts/generator"
    24  }
    25  
    26  func (Generator) CmdName() string {
    27  	return "grift"
    28  }
    29  
    30  func (Generator) CmdAliases() []string {
    31  	return []string{"task"}
    32  }
    33  
    34  func (Generator) Description() string {
    35  	return "Generate a grift task"
    36  }
    37  
    38  func (gen *Generator) Generate(ctx context.Context, root string, args []string) error {
    39  	run := genny.WetRunner(context.Background())
    40  
    41  	opts := &Options{}
    42  	opts.Args = args
    43  	g, err := New(opts)
    44  	if err != nil {
    45  		return plugins.Wrap(gen, err)
    46  	}
    47  	run.With(g)
    48  
    49  	g, err = gogen.Fmt(root)
    50  	if err != nil {
    51  		return plugins.Wrap(gen, err)
    52  	}
    53  	run.With(g)
    54  
    55  	return run.Run()
    56  }