diff --git a/.DS_Store b/.DS_Store index 3c4cab8..5daba3f 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/README.md b/README.md index f99fc6c..152b256 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,12 @@ ### big Camel-Case Name Rule ### JSON tag +## gui support + +![show](/image/gormt/ui_en.gif) + +## cmd support + ![show](/image/gormt/out.gif) -------- @@ -19,12 +25,16 @@ ## 1. Configure default configuration items through the current directory config.yml file ``` out_dir : "." # out dir +url_tag : json # web url tag(json,db(https://github.com/google/go-querystring)) +language : # language(English,中 文) +db_tag : gorm # DB tag(gorm,db) singular_table : false # Table name plural (big Camel-Case):gorm.SingularTable simple : false #simple output is_out_sql : false # Whether to output sql is_out_func : true # Whether to output function -is_json_tag : true # Whether to mark JSON or not +is_url_tag : true # Whether to mark web or not is_foreign_key : true # Whether to mark foreign key or not +is_gui : false # Whether to operate on gui mysql_info : host : "127.0.0.1" @@ -50,12 +60,14 @@ Flags: -d, --database string 数据库名 -f, --foreign 是否导出外键关联 -F, --fun 是否导出函数 + -g, --gui 是否ui显示模式 -h, --help help for main -H, --host string 数据库地址.(注意-H为大写) -o, --outdir string 输出目录 -p, --password string 密码. --port int 端口号 (default 3306) -s, --singular 是否禁用表名复数 + -l, --url string url标签(json,url) -u, --user string 用户名. ``` diff --git a/README_zh_cn.md b/README_zh_cn.md index bda2bee..820db08 100644 --- a/README_zh_cn.md +++ b/README_zh_cn.md @@ -9,6 +9,16 @@ #### mysql数据库转 struct 工具,可以将mysql数据库自动生成golang sturct结构,带大驼峰命名规则。带json标签 +## 交互界面模式 + +![show](/image/gormt/ui_cn.gif) + +``` +./gormt -g=true +``` + +## 命令行模式 + ![show](/image/gormt/out.gif) @@ -18,19 +28,25 @@ ## 1. 通过当前目录 config.yml 文件配置默认配置项 ``` -out_dir : "." # 输出目录 -singular_table : false # 表名复数,是否大驼峰构建 参考:gorm.SingularTable -simple : false #简单输出 +base: + is_dev : false +out_dir : ./model # 输出目录 +url_tag : json # web url tag(json,db(https://github.com/google/go-querystring)) +language : # 语言(English,中 文) +db_tag : gorm # 数据库标签(gorm,db) +singular_table : false # 单表模式:true:禁用表名复数,false:采用表明复数 参考:gorm.SingularTable +simple : false # 简单输出(默认gorm标签不输出) is_out_sql : false # 是否输出 sql 原信息 is_out_func : true # 是否输出 快捷函数 -is_json_tag : false #是否打json标记 -is_foreign_key : true #是否导出外键关联 -mysql_info : - host : "127.0.0.1" +is_url_tag : true # 是否打web标记 +is_foreign_key : true # 是否导出外键关联 +is_gui : false # 是否ui模式显示 +mysql_info: + host : 127.0.0.1 port : 3306 - username : "root" - password : "qwer" - database : "oauth_db" + username : root + password : qwer + database : oauth_db ``` ## 2. 可以使用命令行工具更新配置项 @@ -56,12 +72,14 @@ Flags: -d, --database string 数据库名 -f, --foreign 是否导出外键关联 -F, --fun 是否导出函数 + -g, --gui 是否ui显示模式 -h, --help help for main -H, --host string 数据库地址.(注意-H为大写) -o, --outdir string 输出目录 -p, --password string 密码. --port int 端口号 (default 3306) -s, --singular 是否禁用表名复数 + -l, --url string url标签(json,url) -u, --user string 用户名. ``` diff --git a/config.yml b/config.yml index b5b41bf..58c42cc 100644 --- a/config.yml +++ b/config.yml @@ -8,7 +8,7 @@ singular_table : false # 单表模式:true:禁用表名复数,false:采用表 simple : false # 简单输出(默认gorm标签不输出) is_out_sql : false # 是否输出 sql 原信息 is_out_func : true # 是否输出 快捷函数 -is_json_tag : true # 是否打json标记 +is_url_tag : true # 是否打web标记 is_foreign_key : true # 是否导出外键关联 is_gui : false # 是否ui模式显示 mysql_info: @@ -16,4 +16,5 @@ mysql_info: port : 3306 username : root password : qwer - database : matrix + database : oauth_db + diff --git a/data/config/MyIni.go b/data/config/MyIni.go index 80bd871..d5cfc15 100644 --- a/data/config/MyIni.go +++ b/data/config/MyIni.go @@ -15,7 +15,7 @@ type Config struct { Language string `yaml:"language"` // language DbTag string `yaml:"db_tag"` // 数据库标签(gormt,db) Simple bool `yaml:"simple"` - IsJSONTag bool `yaml:"is_json_tag"` + IsWEBTag bool `yaml:"is_web_tag"` SingularTable bool `yaml:"singular_table"` IsForeignKey bool `yaml:"is_foreign_key"` IsOutSQL bool `yaml:"is_out_sql"` @@ -87,9 +87,9 @@ func SetSimple(b bool) { _map.Simple = b } -// GetIsJSONTag json tag.json标记 -func GetIsJSONTag() bool { - return _map.IsJSONTag +// GetIsWEBTag json tag.json标记 +func GetIsWEBTag() bool { + return _map.IsWEBTag } // GetIsForeignKey if is foreign key diff --git a/data/config/common.go b/data/config/common.go index 3813dd1..e389f97 100644 --- a/data/config/common.go +++ b/data/config/common.go @@ -11,11 +11,11 @@ import ( // CfgBase base config struct type CfgBase struct { - SerialNumber string `json:"serial_number" yaml:"serial_number"` // version.版本号 - ServiceName string `json:"service_name" yaml:"service_name"` // service name .service名字 - ServiceDisplayname string `json:"service_displayname" yaml:"service_displayname"` // display name .显示名 - SerciceDesc string `json:"sercice_desc" yaml:"sercice_desc"` // sercice desc .service描述 - IsDev bool `json:"is_dev" yaml:"is_dev"` // Is it a development version?是否是开发版本 + // SerialNumber string `json:"serial_number" yaml:"serial_number"` // version.版本号 + // ServiceName string `json:"service_name" yaml:"service_name"` // service name .service名字 + // ServiceDisplayname string `json:"service_displayname" yaml:"service_displayname"` // display name .显示名 + // SerciceDesc string `json:"sercice_desc" yaml:"sercice_desc"` // sercice desc .service描述 + IsDev bool `json:"is_dev" yaml:"is_dev"` // Is it a development version?是否是开发版本 } var _map = Config{} @@ -49,12 +49,12 @@ func InitFile(filename string) error { } // GetServiceConfig Get service configuration information -func GetServiceConfig() (name, displayName, desc string) { - name = _map.ServiceName - displayName = _map.ServiceDisplayname - desc = _map.SerciceDesc - return -} +// func GetServiceConfig() (name, displayName, desc string) { +// name = _map.ServiceName +// displayName = _map.ServiceDisplayname +// desc = _map.SerciceDesc +// return +// } // GetIsDev is is dev func GetIsDev() bool { diff --git a/data/dlg/cui.go b/data/dlg/cui.go index 1595869..be4eda2 100644 --- a/data/dlg/cui.go +++ b/data/dlg/cui.go @@ -173,7 +173,7 @@ func enterSet(g *gocui.Gui, v *gocui.View) error { maxX, _ := g.Size() setlog(g, "") // new form - form = mycui.NewForm(g, "set_ui", "Sign Up", division(maxX, uiPart[0])+3, 3, 0, 0) + form = mycui.NewForm(g, "set_ui", "Sign Up", division(maxX, uiPart[0])+2, 2, 0, 0) // add input field form.AddInputField("out_dir", SLocalize("out_dir"), formPart[0], formPart[1]).SetText(config.GetOutDir()). @@ -314,7 +314,7 @@ func showStruct(g *gocui.Gui, v *gocui.View) error { } } - setlog(g, "") + setlog(g, "\n\n\n") for _, v := range out { addlog(g, v) } diff --git a/data/view/model/model.go b/data/view/model/model.go index 4feb843..dbc1ad8 100644 --- a/data/view/model/model.go +++ b/data/view/model/model.go @@ -105,7 +105,7 @@ func (m *_Model) genTableElement(cols []ColumusInfo) (el []genstruct.GenElement) } // json tag - if config.GetIsJSONTag() { + if config.GetIsWEBTag() { if strings.EqualFold(v.Name, "id") { tmp.AddTag(_tagJSON, "-") } else { @@ -149,7 +149,7 @@ func (m *_Model) genForeignKey(col ColumusInfo) (fklist []genstruct.GenElement) tmp.AddTag(_tagGorm, "foreignkey:"+v.ColumnName) // json tag - if config.GetIsJSONTag() { + if config.GetIsWEBTag() { tmp.AddTag(_tagJSON, mybigcamel.UnMarshal(v.TableName)+"_list") }