gendir.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package gogen
  2. import (
  3. "path/filepath"
  4. "strings"
  5. "github.com/tal-tech/go-zero/tools/goctl/util"
  6. )
  7. // target
  8. // ├── etc
  9. // ├── internal
  10. // │   ├── config
  11. // │   ├── handler
  12. // │   ├── logic
  13. // │   ├── pb
  14. // │   └── svc
  15. func (g *defaultRpcGenerator) createDir() error {
  16. ctx := g.Ctx
  17. m := make(map[string]string)
  18. m[dirTarget] = ctx.TargetDir
  19. m[dirEtc] = filepath.Join(ctx.TargetDir, dirEtc)
  20. m[dirInternal] = filepath.Join(ctx.TargetDir, dirInternal)
  21. m[dirConfig] = filepath.Join(ctx.TargetDir, dirInternal, dirConfig)
  22. m[dirHandler] = filepath.Join(ctx.TargetDir, dirInternal, dirHandler)
  23. m[dirLogic] = filepath.Join(ctx.TargetDir, dirInternal, dirLogic)
  24. m[dirPb] = filepath.Join(ctx.TargetDir, dirPb)
  25. m[dirSvc] = filepath.Join(ctx.TargetDir, dirInternal, dirSvc)
  26. m[dirShared] = g.Ctx.SharedDir
  27. for _, d := range m {
  28. err := util.MkdirIfNotExist(d)
  29. if err != nil {
  30. return err
  31. }
  32. }
  33. g.dirM = m
  34. return nil
  35. }
  36. func (g *defaultRpcGenerator) mustGetPackage(dir string) string {
  37. target := g.dirM[dir]
  38. projectPath := g.Ctx.ProjectPath
  39. relativePath := strings.TrimPrefix(target, projectPath)
  40. return g.Ctx.Module + relativePath
  41. }