Added package name CLI flags for Model, Table, View and Enum

This commit is contained in:
Jamius Siam 2024-11-21 00:48:12 +06:00
parent 3ca17766f7
commit 94412b797c

View file

@ -42,7 +42,11 @@ var (
ignoreViews string
ignoreEnums string
destDir string
destDir string
modelPkg string
tablePkg string
viewPkg string
enumPkg string
)
func init() {
@ -71,6 +75,10 @@ func init() {
flag.StringVar(&ignoreEnums, "ignore-enums", "", `Comma-separated list of enums to ignore`)
flag.StringVar(&destDir, "path", "", "Destination dir for files generated.")
flag.StringVar(&modelPkg, "model-pkg", "", "Package name for the model files generated")
flag.StringVar(&tablePkg, "table-pkg", "", "Package name for the table files generated")
flag.StringVar(&viewPkg, "view-pkg", "", "Package name for the view files generated")
flag.StringVar(&enumPkg, "enum-pkg", "", "Package name for the enum files generated")
}
func main() {
@ -170,6 +178,7 @@ func usage() {
"source", "dsn", "host", "port", "user", "password", "dbname", "schema", "params", "sslmode",
"path",
"ignore-tables", "ignore-views", "ignore-enums",
"model-pkg", "table-pkg", "view-pkg", "enum-pkg",
}
for _, name := range order {
@ -243,10 +252,16 @@ func genTemplate(dialect jet.Dialect, ignoreTables []string, ignoreViews []strin
return strslice.Contains(ignoreEnums, strings.ToLower(enum.Name))
}
model := template.DefaultModel()
if modelPkg != "" {
model = model.UsePath("/" + modelPkg)
}
return template.Default(dialect).
UseSchema(func(schemaMetaData metadata.Schema) template.Schema {
return template.DefaultSchema(schemaMetaData).
UseModel(template.DefaultModel().
UseModel(model.
UseTable(func(table metadata.Table) template.TableModel {
if shouldSkipTable(table) {
return template.TableModel{Skip: true}
@ -271,18 +286,33 @@ func genTemplate(dialect jet.Dialect, ignoreTables []string, ignoreViews []strin
if shouldSkipTable(table) {
return template.TableSQLBuilder{Skip: true}
}
if tablePkg != "" {
return template.DefaultTableSQLBuilder(table).UsePath("/" + tablePkg)
}
return template.DefaultTableSQLBuilder(table)
}).
UseView(func(table metadata.Table) template.ViewSQLBuilder {
if shouldSkipView(table) {
return template.ViewSQLBuilder{Skip: true}
}
if viewPkg != "" {
return template.DefaultViewSQLBuilder(table).UsePath("/" + viewPkg)
}
return template.DefaultViewSQLBuilder(table)
}).
UseEnum(func(enum metadata.Enum) template.EnumSQLBuilder {
if shouldSkipEnum(enum) {
return template.EnumSQLBuilder{Skip: true}
}
if enumPkg != "" {
return template.DefaultEnumSQLBuilder(enum).UsePath("/" + enumPkg)
}
return template.DefaultEnumSQLBuilder(enum)
}),
)