github.com/yoogoc/kratos-scaffold@v0.0.0-20240402032722-a538b3c18955/cmd/biz.go (about) 1 package cmd 2 3 import ( 4 "github.com/iancoleman/strcase" 5 "github.com/yoogoc/kratos-scaffold/generator" 6 "github.com/yoogoc/kratos-scaffold/pkg/field" 7 "github.com/yoogoc/kratos-scaffold/pkg/util" 8 9 "github.com/spf13/cobra" 10 ) 11 12 func newBizCmd() *cobra.Command { 13 biz := generator.NewBiz(settings) 14 var bizCmd = &cobra.Command{ 15 Use: "biz [NAME] [FIELD]...", 16 Short: "generate biz file", 17 Long: `kratos-scaffold biz -n user-service user id:int64:eq,in name:string:contains age:int32:gte,lte`, 18 FParseErrWhitelist: cobra.FParseErrWhitelist{UnknownFlags: true}, 19 RunE: func(cmd *cobra.Command, args []string) error { 20 return runBiz(biz, args) 21 }, 22 } 23 24 addBizFlags(bizCmd, biz) 25 26 return bizCmd 27 } 28 29 func addBizFlags(bizCmd *cobra.Command, biz *generator.Biz) { 30 31 } 32 33 func runBiz(biz *generator.Biz, args []string) error { 34 modelName := args[0] 35 36 biz.Name = util.Singular(strcase.ToCamel(modelName)) 37 if fs, err := field.ParseFields(args[1:]); err != nil { 38 return err 39 } else { 40 biz.Fields = fs 41 } 42 43 err := biz.Generate() 44 return err 45 }