template.go 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package gen
  2. import (
  3. "fmt"
  4. "github.com/zeromicro/go-zero/tools/goctl/model/sql/template"
  5. "github.com/zeromicro/go-zero/tools/goctl/util/pathx"
  6. )
  7. const (
  8. category = "model"
  9. deleteTemplateFile = "delete.tpl"
  10. deleteMethodTemplateFile = "interface-delete.tpl"
  11. fieldTemplateFile = "field.tpl"
  12. findOneTemplateFile = "find-one.tpl"
  13. findOneMethodTemplateFile = "interface-find-one.tpl"
  14. findOneByFieldTemplateFile = "find-one-by-field.tpl"
  15. findOneByFieldMethodTemplateFile = "interface-find-one-by-field.tpl"
  16. findOneByFieldExtraMethodTemplateFile = "find-one-by-field-extra-method.tpl"
  17. importsTemplateFile = "import.tpl"
  18. importsWithNoCacheTemplateFile = "import-no-cache.tpl"
  19. insertTemplateFile = "insert.tpl"
  20. insertTemplateMethodFile = "interface-insert.tpl"
  21. modelGenTemplateFile = "model-gen.tpl"
  22. modelCustomTemplateFile = "model.tpl"
  23. modelNewTemplateFile = "model-new.tpl"
  24. tableNameTemplateFile = "table-name.tpl"
  25. tagTemplateFile = "tag.tpl"
  26. typesTemplateFile = "types.tpl"
  27. updateTemplateFile = "update.tpl"
  28. updateMethodTemplateFile = "interface-update.tpl"
  29. varTemplateFile = "var.tpl"
  30. errTemplateFile = "err.tpl"
  31. )
  32. var templates = map[string]string{
  33. deleteTemplateFile: template.Delete,
  34. deleteMethodTemplateFile: template.DeleteMethod,
  35. fieldTemplateFile: template.Field,
  36. findOneTemplateFile: template.FindOne,
  37. findOneMethodTemplateFile: template.FindOneMethod,
  38. findOneByFieldTemplateFile: template.FindOneByField,
  39. findOneByFieldMethodTemplateFile: template.FindOneByFieldMethod,
  40. findOneByFieldExtraMethodTemplateFile: template.FindOneByFieldExtraMethod,
  41. importsTemplateFile: template.Imports,
  42. importsWithNoCacheTemplateFile: template.ImportsNoCache,
  43. insertTemplateFile: template.Insert,
  44. insertTemplateMethodFile: template.InsertMethod,
  45. modelGenTemplateFile: template.ModelGen,
  46. modelCustomTemplateFile: template.ModelCustom,
  47. modelNewTemplateFile: template.New,
  48. tableNameTemplateFile: template.TableName,
  49. tagTemplateFile: template.Tag,
  50. typesTemplateFile: template.Types,
  51. updateTemplateFile: template.Update,
  52. updateMethodTemplateFile: template.UpdateMethod,
  53. varTemplateFile: template.Vars,
  54. errTemplateFile: template.Error,
  55. }
  56. // Category returns model const value
  57. func Category() string {
  58. return category
  59. }
  60. // Clean deletes all template files
  61. func Clean() error {
  62. return pathx.Clean(category)
  63. }
  64. // GenTemplates creates template files if not exists
  65. func GenTemplates() error {
  66. return pathx.InitTemplates(category, templates)
  67. }
  68. // RevertTemplate reverts the deleted template files
  69. func RevertTemplate(name string) error {
  70. content, ok := templates[name]
  71. if !ok {
  72. return fmt.Errorf("%s: no such file name", name)
  73. }
  74. return pathx.CreateTemplate(category, name, content)
  75. }
  76. // Update provides template clean and init
  77. func Update() error {
  78. err := Clean()
  79. if err != nil {
  80. return err
  81. }
  82. return pathx.InitTemplates(category, templates)
  83. }