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  }