From 5add82eacb3832df5b643add58fac4e3a51cfd40 Mon Sep 17 00:00:00 2001 From: Jamius Siam Date: Fri, 22 Nov 2024 21:37:55 +0600 Subject: [PATCH] Refactored CLI arguments --- cmd/jet/main.go | 43 +++++++++++++------------------------------ 1 file changed, 13 insertions(+), 30 deletions(-) diff --git a/cmd/jet/main.go b/cmd/jet/main.go index e213aef..aecbfaa 100644 --- a/cmd/jet/main.go +++ b/cmd/jet/main.go @@ -70,15 +70,15 @@ func init() { flag.StringVar(&schemaName, "schema", "public", `Database schema name. (default "public")(PostgreSQL only)`) flag.StringVar(¶ms, "params", "", "Additional connection string parameters(optional). Used only if dsn is not set.") flag.StringVar(&sslmode, "sslmode", "disable", `Whether or not to use SSL. Used only if dsn is not set. (optional)(default "disable")(PostgreSQL only)`) - flag.StringVar(&ignoreTables, "ignore-tables", "", `Comma-separated list of tables to ignore`) - flag.StringVar(&ignoreViews, "ignore-views", "", `Comma-separated list of views to ignore`) - flag.StringVar(&ignoreEnums, "ignore-enums", "", `Comma-separated list of enums to ignore`) + flag.StringVar(&ignoreTables, "ignore-tables", "", `Comma-separated list of tables to ignore.`) + flag.StringVar(&ignoreViews, "ignore-views", "", `Comma-separated list of views to ignore.`) + 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") + flag.StringVar(&destDir, "path", "", "Destination directory for files generated.") + flag.StringVar(&modelPkg, "model-pkg", "model", "Relative path for the Model files package from the destination directory.") + flag.StringVar(&tablePkg, "table-pkg", "table", "Relative path for the Table files package from the destination directory.") + flag.StringVar(&viewPkg, "view-pkg", "view", "Relative path for the View files package from the destination directory.") + flag.StringVar(&enumPkg, "enum-pkg", "enum", "Relative path for the Enum files package from the destination directory.") } func main() { @@ -195,6 +195,7 @@ func usage() { $ jet -source=postgres -dsn="user=jet password=jet host=localhost port=5432 dbname=jetdb" -schema=dvds -path=./gen $ jet -source=mysql -host=localhost -port=3306 -user=jet -password=jet -dbname=jetdb -path=./gen $ jet -source=sqlite -dsn="file://path/to/sqlite/database/file" -path=./gen + $ jet -source=sqlite -dsn="file://path/to/sqlite/database/file" -path=./gen -model-pkg=./entity `) } @@ -252,16 +253,10 @@ 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(model. + UseModel(template.DefaultModel().UsePath(modelPkg). UseTable(func(table metadata.Table) template.TableModel { if shouldSkipTable(table) { return template.TableModel{Skip: true} @@ -287,33 +282,21 @@ func genTemplate(dialect jet.Dialect, ignoreTables []string, ignoreViews []strin return template.TableSQLBuilder{Skip: true} } - if tablePkg != "" { - return template.DefaultTableSQLBuilder(table).UsePath("/" + tablePkg) - } - - return template.DefaultTableSQLBuilder(table) + return template.DefaultTableSQLBuilder(table).UsePath(tablePkg) }). 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) + return template.DefaultViewSQLBuilder(table).UsePath(viewPkg) }). 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) + return template.DefaultEnumSQLBuilder(enum).UsePath(enumPkg) }), ) })