template.go 3.5 KB

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