cmd.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package gateway
  2. import (
  3. _ "embed"
  4. "os"
  5. "path/filepath"
  6. "github.com/spf13/cobra"
  7. "github.com/zeromicro/go-zero/tools/goctl/internal/cobrax"
  8. "github.com/zeromicro/go-zero/tools/goctl/util/ctx"
  9. "github.com/zeromicro/go-zero/tools/goctl/util/pathx"
  10. )
  11. var (
  12. varStringHome string
  13. varStringRemote string
  14. varStringBranch string
  15. varStringDir string
  16. Cmd = cobrax.NewCommand("gateway", cobrax.WithRunE(generateGateway))
  17. )
  18. func init() {
  19. Cmd.PersistentFlags().StringVar(&varStringHome, "home")
  20. Cmd.PersistentFlags().StringVar(&varStringRemote, "remote")
  21. Cmd.PersistentFlags().StringVar(&varStringBranch, "branch")
  22. Cmd.PersistentFlags().StringVar(&varStringDir, "dir")
  23. }
  24. func generateGateway(*cobra.Command, []string) error {
  25. if err := pathx.MkdirIfNotExist(varStringDir); err != nil {
  26. return err
  27. }
  28. if _, err := ctx.Prepare(varStringDir); err != nil {
  29. return err
  30. }
  31. etcContent, err := pathx.LoadTemplate(category, etcTemplateFileFile, etcTemplate)
  32. if err != nil {
  33. return err
  34. }
  35. mainContent, err := pathx.LoadTemplate(category, mainTemplateFile, mainTemplate)
  36. if err != nil {
  37. return err
  38. }
  39. etcDir := filepath.Join(varStringDir, "etc")
  40. if err := pathx.MkdirIfNotExist(etcDir); err != nil {
  41. return err
  42. }
  43. etcFile := filepath.Join(etcDir, "gateway.yaml")
  44. if err := os.WriteFile(etcFile, []byte(etcContent), 0644); err != nil {
  45. return err
  46. }
  47. mainFile := filepath.Join(varStringDir, "main.go")
  48. return os.WriteFile(mainFile, []byte(mainContent), 0644)
  49. }