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

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