cmd.go 943 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package ktgen
  2. import (
  3. "errors"
  4. "github.com/spf13/cobra"
  5. "github.com/wuntsong-org/go-zero-plus/tools/goctlwt/api/parser"
  6. )
  7. var (
  8. // VarStringDir describes a directory.
  9. VarStringDir string
  10. // VarStringAPI describes an API.
  11. VarStringAPI string
  12. // VarStringPKG describes a package.
  13. VarStringPKG string
  14. )
  15. // KtCommand generates kotlin code command entrance
  16. func KtCommand(_ *cobra.Command, _ []string) error {
  17. apiFile := VarStringAPI
  18. if apiFile == "" {
  19. return errors.New("missing -api")
  20. }
  21. dir := VarStringDir
  22. if dir == "" {
  23. return errors.New("missing -dir")
  24. }
  25. pkg := VarStringPKG
  26. if pkg == "" {
  27. return errors.New("missing -pkg")
  28. }
  29. api, e := parser.Parse(apiFile)
  30. if e != nil {
  31. return e
  32. }
  33. if err := api.Validate(); err != nil {
  34. return err
  35. }
  36. api.Service = api.Service.JoinPrefix()
  37. e = genBase(dir, pkg, api)
  38. if e != nil {
  39. return e
  40. }
  41. e = genApi(dir, pkg, api)
  42. if e != nil {
  43. return e
  44. }
  45. return nil
  46. }