gensvc.go 843 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package generator
  2. import (
  3. "fmt"
  4. "path/filepath"
  5. "github.com/tal-tech/go-zero/tools/goctl/rpc/parser"
  6. "github.com/tal-tech/go-zero/tools/goctl/util"
  7. )
  8. const svcTemplate = `package svc
  9. import {{.imports}}
  10. type ServiceContext struct {
  11. c config.Config
  12. }
  13. func NewServiceContext(c config.Config) *ServiceContext {
  14. return &ServiceContext{
  15. c:c,
  16. }
  17. }
  18. `
  19. func (g *defaultGenerator) GenSvc(ctx DirContext, _ parser.Proto, namingStyle NamingStyle) error {
  20. dir := ctx.GetSvc()
  21. fileName := filepath.Join(dir.Filename, formatFilename("service_context", namingStyle)+".go")
  22. text, err := util.LoadTemplate(category, svcTemplateFile, svcTemplate)
  23. if err != nil {
  24. return err
  25. }
  26. return util.With("svc").GoFmt(true).Parse(text).SaveTo(map[string]interface{}{
  27. "imports": fmt.Sprintf(`"%v"`, ctx.GetConfig().Package),
  28. }, fileName, false)
  29. }