gen.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package gogen
  2. import (
  3. "github.com/tal-tech/go-zero/tools/goctl/rpc/ctx"
  4. "github.com/tal-tech/go-zero/tools/goctl/rpc/parser"
  5. )
  6. const (
  7. dirTarget = "dirTarget"
  8. dirConfig = "config"
  9. dirEtc = "etc"
  10. dirSvc = "svc"
  11. dirShared = "shared"
  12. dirHandler = "handler"
  13. dirLogic = "logic"
  14. dirPb = "pb"
  15. dirInternal = "internal"
  16. fileConfig = "config.go"
  17. fileServiceContext = "servicecontext.go"
  18. )
  19. type (
  20. defaultRpcGenerator struct {
  21. dirM map[string]string
  22. Ctx *ctx.RpcContext
  23. ast *parser.PbAst
  24. }
  25. )
  26. func NewDefaultRpcGenerator(ctx *ctx.RpcContext) *defaultRpcGenerator {
  27. return &defaultRpcGenerator{
  28. Ctx: ctx,
  29. }
  30. }
  31. func (g *defaultRpcGenerator) Generate() (err error) {
  32. g.Ctx.Info("generating code...")
  33. defer func() {
  34. if err == nil {
  35. g.Ctx.Success("Done.")
  36. }
  37. }()
  38. err = g.createDir()
  39. if err != nil {
  40. return
  41. }
  42. err = g.genEtc()
  43. if err != nil {
  44. return
  45. }
  46. err = g.genPb()
  47. if err != nil {
  48. return
  49. }
  50. err = g.genConfig()
  51. if err != nil {
  52. return
  53. }
  54. err = g.genSvc()
  55. if err != nil {
  56. return
  57. }
  58. err = g.genLogic()
  59. if err != nil {
  60. return
  61. }
  62. err = g.genHandler()
  63. if err != nil {
  64. return
  65. }
  66. err = g.genMain()
  67. if err != nil {
  68. return
  69. }
  70. err = g.genShared()
  71. if err != nil {
  72. return
  73. }
  74. return nil
  75. }