gen.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package javagen
  2. import (
  3. "errors"
  4. "fmt"
  5. "strings"
  6. "github.com/gookit/color"
  7. "github.com/spf13/cobra"
  8. "github.com/wuntsong-org/go-zero-plus/core/logx"
  9. "github.com/wuntsong-org/go-zero-plus/tools/goctlwt/api/parser"
  10. "github.com/wuntsong-org/go-zero-plus/tools/goctlwt/util/pathx"
  11. )
  12. var (
  13. // VarStringDir describes a directory.
  14. VarStringDir string
  15. // VarStringAPI describes an API.
  16. VarStringAPI string
  17. )
  18. // JavaCommand generates java code command entrance.
  19. func JavaCommand(_ *cobra.Command, _ []string) error {
  20. apiFile := VarStringAPI
  21. dir := VarStringDir
  22. if len(apiFile) == 0 {
  23. return errors.New("missing -api")
  24. }
  25. if len(dir) == 0 {
  26. return errors.New("missing -dir")
  27. }
  28. api, err := parser.Parse(apiFile)
  29. if err != nil {
  30. return err
  31. }
  32. if err := api.Validate(); err != nil {
  33. return err
  34. }
  35. api.Service = api.Service.JoinPrefix()
  36. packetName := strings.TrimSuffix(api.Service.Name, "-api")
  37. logx.Must(pathx.MkdirIfNotExist(dir))
  38. logx.Must(genPacket(dir, packetName, api))
  39. logx.Must(genComponents(dir, packetName, api))
  40. fmt.Println(color.Green.Render("Done."))
  41. return nil
  42. }