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 }