cmd.go 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. package api
  2. import (
  3. "github.com/spf13/cobra"
  4. "github.com/zeromicro/go-zero/tools/goctl/api/apigen"
  5. "github.com/zeromicro/go-zero/tools/goctl/api/dartgen"
  6. "github.com/zeromicro/go-zero/tools/goctl/api/docgen"
  7. "github.com/zeromicro/go-zero/tools/goctl/api/format"
  8. "github.com/zeromicro/go-zero/tools/goctl/api/gogen"
  9. "github.com/zeromicro/go-zero/tools/goctl/api/javagen"
  10. "github.com/zeromicro/go-zero/tools/goctl/api/ktgen"
  11. "github.com/zeromicro/go-zero/tools/goctl/api/new"
  12. "github.com/zeromicro/go-zero/tools/goctl/api/tsgen"
  13. "github.com/zeromicro/go-zero/tools/goctl/api/validate"
  14. "github.com/zeromicro/go-zero/tools/goctl/config"
  15. "github.com/zeromicro/go-zero/tools/goctl/internal/cobrax"
  16. "github.com/zeromicro/go-zero/tools/goctl/plugin"
  17. )
  18. var (
  19. // Cmd describes an api command.
  20. Cmd = cobrax.NewCommand("api", cobrax.WithRunE(apigen.CreateApiTemplate))
  21. dartCmd = cobrax.NewCommand("dart", cobrax.WithRunE(dartgen.DartCommand))
  22. docCmd = cobrax.NewCommand("doc", cobrax.WithRunE(docgen.DocCommand))
  23. formatCmd = cobrax.NewCommand("format", cobrax.WithRunE(format.GoFormatApi))
  24. goCmd = cobrax.NewCommand("go", cobrax.WithRunE(gogen.GoCommand))
  25. newCmd = cobrax.NewCommand("new", cobrax.WithRunE(new.CreateServiceCommand),
  26. cobrax.WithArgs(cobra.MatchAll(cobra.ExactArgs(1), cobra.OnlyValidArgs)))
  27. validateCmd = cobrax.NewCommand("validate", cobrax.WithRunE(validate.GoValidateApi))
  28. javaCmd = cobrax.NewCommand("java", cobrax.WithRunE(javagen.JavaCommand), cobrax.WithHidden())
  29. ktCmd = cobrax.NewCommand("kt", cobrax.WithRunE(ktgen.KtCommand))
  30. pluginCmd = cobrax.NewCommand("plugin", cobrax.WithRunE(plugin.PluginCommand))
  31. tsCmd = cobrax.NewCommand("ts", cobrax.WithRunE(tsgen.TsCommand))
  32. )
  33. func init() {
  34. var (
  35. apiCmdFlags = Cmd.Flags()
  36. dartCmdFlags = dartCmd.Flags()
  37. docCmdFlags = docCmd.Flags()
  38. formatCmdFlags = formatCmd.Flags()
  39. goCmdFlags = goCmd.Flags()
  40. javaCmdFlags = javaCmd.Flags()
  41. ktCmdFlags = ktCmd.Flags()
  42. newCmdFlags = newCmd.Flags()
  43. pluginCmdFlags = pluginCmd.Flags()
  44. tsCmdFlags = tsCmd.Flags()
  45. validateCmdFlags = validateCmd.Flags()
  46. )
  47. apiCmdFlags.StringVar(&apigen.VarStringOutput, "o")
  48. apiCmdFlags.StringVar(&apigen.VarStringHome, "home")
  49. apiCmdFlags.StringVar(&apigen.VarStringRemote, "remote")
  50. apiCmdFlags.StringVar(&apigen.VarStringBranch, "branch")
  51. dartCmdFlags.StringVar(&dartgen.VarStringDir, "dir")
  52. dartCmdFlags.StringVar(&dartgen.VarStringAPI, "api")
  53. dartCmdFlags.BoolVar(&dartgen.VarStringLegacy, "legacy")
  54. dartCmdFlags.StringVar(&dartgen.VarStringHostname, "hostname")
  55. dartCmdFlags.StringVar(&dartgen.VarStringScheme, "scheme")
  56. docCmdFlags.StringVar(&docgen.VarStringDir, "dir")
  57. docCmdFlags.StringVar(&docgen.VarStringOutput, "o")
  58. formatCmdFlags.StringVar(&format.VarStringDir, "dir")
  59. formatCmdFlags.BoolVar(&format.VarBoolIgnore, "iu")
  60. formatCmdFlags.BoolVar(&format.VarBoolUseStdin, "stdin")
  61. formatCmdFlags.BoolVar(&format.VarBoolSkipCheckDeclare, "declare")
  62. goCmdFlags.StringVar(&gogen.VarStringDir, "dir")
  63. goCmdFlags.StringVar(&gogen.VarStringAPI, "api")
  64. goCmdFlags.StringVar(&gogen.VarStringHome, "home")
  65. goCmdFlags.StringVar(&gogen.VarStringRemote, "remote")
  66. goCmdFlags.StringVar(&gogen.VarStringBranch, "branch")
  67. goCmdFlags.StringVarWithDefaultValue(&gogen.VarStringStyle, "style", config.DefaultFormat)
  68. javaCmdFlags.StringVar(&javagen.VarStringDir, "dir")
  69. javaCmdFlags.StringVar(&javagen.VarStringAPI, "api")
  70. ktCmdFlags.StringVar(&ktgen.VarStringDir, "dir")
  71. ktCmdFlags.StringVar(&ktgen.VarStringAPI, "api")
  72. ktCmdFlags.StringVar(&ktgen.VarStringPKG, "pkg")
  73. newCmdFlags.StringVar(&new.VarStringHome, "home")
  74. newCmdFlags.StringVar(&new.VarStringRemote, "remote")
  75. newCmdFlags.StringVar(&new.VarStringBranch, "branch")
  76. newCmdFlags.StringVarWithDefaultValue(&new.VarStringStyle, "style", config.DefaultFormat)
  77. pluginCmdFlags.StringVarP(&plugin.VarStringPlugin, "plugin", "p")
  78. pluginCmdFlags.StringVar(&plugin.VarStringDir, "dir")
  79. pluginCmdFlags.StringVar(&plugin.VarStringAPI, "api")
  80. pluginCmdFlags.StringVar(&plugin.VarStringStyle, "style")
  81. tsCmdFlags.StringVar(&tsgen.VarStringDir, "dir")
  82. tsCmdFlags.StringVar(&tsgen.VarStringAPI, "api")
  83. tsCmdFlags.StringVar(&tsgen.VarStringCaller, "caller")
  84. tsCmdFlags.BoolVar(&tsgen.VarBoolUnWrap, "unwrap")
  85. validateCmdFlags.StringVar(&validate.VarStringAPI, "api")
  86. // Add sub-commands
  87. Cmd.AddCommand(dartCmd, docCmd, formatCmd, goCmd, javaCmd, ktCmd, newCmd, pluginCmd, tsCmd, validateCmd)
  88. }