github.com/artisanhe/tools@v1.0.1-0.20210607022958-19a8fef2eb04/cmd/cmd_gen_model.go (about) 1 package cmd 2 3 import ( 4 "github.com/spf13/cobra" 5 6 "github.com/artisanhe/tools/codegen" 7 "github.com/artisanhe/tools/sqlx/gen" 8 ) 9 10 var cmdGenModelFlagDatabase string 11 var cmdGenModelFlagTableName string 12 var cmdGenModelFlagTableInterfaces bool 13 var cmdGenModelFlagWithComments bool 14 var cmdGenModelFlagFieldSoftDelete string 15 var cmdGenModelFlagConstSoftDeleteTrue string 16 var cmdGenModelFlagConstSoftDeleteFalse string 17 18 var cmdGenModel = &cobra.Command{ 19 Use: "model", 20 Short: "generate db model method", 21 Run: func(cmd *cobra.Command, args []string) { 22 if cmdGenModelFlagDatabase == "" { 23 panic("database must be defined") 24 } 25 26 for _, structName := range args { 27 clientGenerator := gen.SqlFuncGenerator{} 28 clientGenerator.StructName = structName 29 clientGenerator.Database = cmdGenModelFlagDatabase 30 clientGenerator.TableName = cmdGenModelFlagTableName 31 clientGenerator.TableName = cmdGenModelFlagTableName 32 clientGenerator.WithTableInterfaces = cmdGenModelFlagTableInterfaces 33 clientGenerator.WithComments = cmdGenModelFlagWithComments 34 clientGenerator.FieldSoftDelete = cmdGenModelFlagFieldSoftDelete 35 clientGenerator.ConstSoftDeleteTrue = cmdGenModelFlagConstSoftDeleteTrue 36 clientGenerator.ConstSoftDeleteFalse = cmdGenModelFlagConstSoftDeleteFalse 37 codegen.Generate(&clientGenerator) 38 } 39 }, 40 } 41 42 func init() { 43 cmdGenModel.Flags(). 44 StringVarP(&cmdGenModelFlagDatabase, "database", "", "", "(required) register model to database var") 45 cmdGenModel.Flags(). 46 StringVarP(&cmdGenModelFlagTableName, "table-name", "t", "", "custom table name") 47 cmdGenModel.Flags(). 48 BoolVarP(&cmdGenModelFlagTableInterfaces, "with-table-interfaces", "", true, "with table interface TableName T D") 49 cmdGenModel.Flags(). 50 BoolVarP(&cmdGenModelFlagWithComments, "with-comments", "", false, "use comments") 51 cmdGenModel.Flags(). 52 StringVarP(&cmdGenModelFlagFieldSoftDelete, "field-soft-delete", "", "", "custom soft delete field") 53 cmdGenModel.Flags(). 54 StringVarP(&cmdGenModelFlagConstSoftDeleteTrue, "const-soft-delete-true", "", "", "custom soft delete value true") 55 cmdGenModel.Flags(). 56 StringVarP(&cmdGenModelFlagConstSoftDeleteFalse, "const-soft-delete-false", "", "", "custom soft delete value false") 57 58 cmdGen.AddCommand(cmdGenModel) 59 }