github.com/yoogoc/kratos-scaffold@v0.0.0-20240402032722-a538b3c18955/cmd/root.go (about) 1 package cmd 2 3 import ( 4 "fmt" 5 "os" 6 7 "github.com/spf13/cobra" 8 "github.com/yoogoc/kratos-scaffold/pkg/cli" 9 ) 10 11 var settings = cli.New() 12 13 const desc = `kratos-scaffold is a kratos-layout style scaffold. 14 ` 15 16 func Execute() { 17 rootCmd := newRootCmd(os.Args[1:]) 18 if err := rootCmd.Execute(); err != nil { 19 _, _ = fmt.Fprintln(os.Stderr, err) 20 os.Exit(1) 21 } 22 } 23 24 func newRootCmd(args []string) *cobra.Command { 25 rootCmd := &cobra.Command{ 26 Use: "kratos-scaffold", 27 Short: "kratos-scaffold is a kratos-layout style scaffold.", 28 Long: desc, 29 FParseErrWhitelist: cobra.FParseErrWhitelist{UnknownFlags: true}, 30 Run: func(cmd *cobra.Command, args []string) { 31 _ = cmd.Help() 32 }, 33 } 34 35 flags := rootCmd.PersistentFlags() 36 37 settings.AddFlags(flags) 38 39 _ = flags.Parse(args) 40 41 service := newServiceCmd() 42 biz := newBizCmd() 43 proto := newProtoCmd() 44 data := newDataCmd() 45 46 rootCmd.AddCommand( 47 newNewCmd(), 48 service, 49 biz, 50 proto, 51 data, 52 newGenerateCmd(proto, biz, data, service), 53 ) 54 55 return rootCmd 56 }