github.com/yoogoc/kratos-scaffold@v0.0.0-20240402032722-a538b3c18955/cmd/new.go (about)

     1  package cmd
     2  
     3  import (
     4  	pg "github.com/yoogoc/kratos-scaffold/project_generator"
     5  
     6  	"github.com/spf13/cobra"
     7  )
     8  
     9  var (
    10  	isMono bool
    11  )
    12  
    13  func newNewCmd() *cobra.Command {
    14  	project := pg.NewProject()
    15  	var newCmd = &cobra.Command{
    16  		Use:                "new",
    17  		Short:              "generate a new project",
    18  		Long:               `kratos-scaffold new beer-shop`,
    19  		FParseErrWhitelist: cobra.FParseErrWhitelist{UnknownFlags: true},
    20  		RunE: func(cmd *cobra.Command, args []string) error {
    21  			project.Name = args[0]
    22  			project.SetProjectType(isMono)
    23  			return project.Gen()
    24  		},
    25  	}
    26  	addNewFlags(newCmd, project) // inject config struct
    27  
    28  	return newCmd
    29  }
    30  
    31  func addNewFlags(newCmd *cobra.Command, project *pg.Project) {
    32  	newCmd.PersistentFlags().BoolVarP(&isMono, "mono", "", false, "is mono parent repo?")
    33  	newCmd.PersistentFlags().BoolVarP(&project.IsBff, "bff", "", false, "is bff repo?")
    34  }