genmain.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package gogen
  2. import (
  3. _ "embed"
  4. "fmt"
  5. "strings"
  6. "github.com/wuntsong-org/go-zero-plus/tools/goctlwt/api/spec"
  7. "github.com/wuntsong-org/go-zero-plus/tools/goctlwt/config"
  8. "github.com/wuntsong-org/go-zero-plus/tools/goctlwt/util/format"
  9. "github.com/wuntsong-org/go-zero-plus/tools/goctlwt/util/pathx"
  10. "github.com/wuntsong-org/go-zero-plus/tools/goctlwt/vars"
  11. )
  12. //go:embed main.tpl
  13. var mainTemplate string
  14. func genMain(dir, rootPkg string, cfg *config.Config, api *spec.ApiSpec) error {
  15. name := strings.ToLower(api.Service.Name)
  16. filename, err := format.FileNamingFormat(cfg.NamingFormat, name)
  17. if err != nil {
  18. return err
  19. }
  20. configName := filename
  21. if strings.HasSuffix(filename, "-api") {
  22. filename = strings.ReplaceAll(filename, "-api", "")
  23. }
  24. return genFile(fileGenConfig{
  25. dir: dir,
  26. subdir: "",
  27. filename: filename + ".go",
  28. templateName: "mainTemplate",
  29. category: category,
  30. templateFile: mainTemplateFile,
  31. builtinTemplate: mainTemplate,
  32. data: map[string]string{
  33. "importPackages": genMainImports(rootPkg),
  34. "serviceName": configName,
  35. },
  36. })
  37. }
  38. func genMainImports(parentPkg string) string {
  39. var imports []string
  40. imports = append(imports, fmt.Sprintf("\"%s\"", pathx.JoinPackages(parentPkg, configDir)))
  41. imports = append(imports, fmt.Sprintf("\"%s\"", pathx.JoinPackages(parentPkg, handlerDir)))
  42. imports = append(imports, fmt.Sprintf("\"%s\"\n", pathx.JoinPackages(parentPkg, contextDir)))
  43. imports = append(imports, fmt.Sprintf("\"%s/core/conf\"", vars.ProjectOpenSourceURL))
  44. imports = append(imports, fmt.Sprintf("\"%s/rest\"", vars.ProjectOpenSourceURL))
  45. return strings.Join(imports, "\n\t")
  46. }