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  }