github.com/gobuffalo/buffalo-cli/v2@v2.0.0-alpha.15.0.20200919213536-a7350c8e6799/cli/cmds/fix/flags.go (about)

     1  package fix
     2  
     3  import (
     4  	"github.com/gobuffalo/buffalo-cli/v2/internal/flagger"
     5  	"github.com/gobuffalo/plugins/plugflag"
     6  	"github.com/spf13/pflag"
     7  )
     8  
     9  func (cmd *Cmd) Flags() *pflag.FlagSet {
    10  	if cmd.flags != nil {
    11  		return cmd.flags
    12  	}
    13  
    14  	flags := pflag.NewFlagSet(cmd.PluginName(), pflag.ContinueOnError)
    15  	flags.BoolVarP(&cmd.help, "help", "h", false, "print this help")
    16  
    17  	for _, p := range cmd.ScopedPlugins() {
    18  		switch t := p.(type) {
    19  		case Flagger:
    20  			for _, f := range plugflag.Clean(p, t.FixFlags()) {
    21  				flags.AddGoFlag(f)
    22  			}
    23  		case Pflagger:
    24  			for _, f := range flagger.CleanPflags(p, t.FixFlags()) {
    25  				flags.AddFlag(f)
    26  			}
    27  		}
    28  	}
    29  
    30  	cmd.flags = flags
    31  
    32  	return cmd.flags
    33  }