defaultgenerator.go 869 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package generator
  2. import (
  3. "os/exec"
  4. "github.com/tal-tech/go-zero/tools/goctl/util/console"
  5. )
  6. // DefaultGenerator defines the environment needs of rpc service generation
  7. type DefaultGenerator struct {
  8. log console.Console
  9. }
  10. // just test interface implement
  11. var _ Generator = (*DefaultGenerator)(nil)
  12. // NewDefaultGenerator returns an instance of DefaultGenerator
  13. func NewDefaultGenerator() Generator {
  14. log := console.NewColorConsole()
  15. return &DefaultGenerator{
  16. log: log,
  17. }
  18. }
  19. // Prepare provides environment detection generated by rpc service,
  20. // including go environment, protoc, whether protoc-gen-go is installed or not
  21. func (g *DefaultGenerator) Prepare() error {
  22. _, err := exec.LookPath("go")
  23. if err != nil {
  24. return err
  25. }
  26. _, err = exec.LookPath("protoc")
  27. if err != nil {
  28. return err
  29. }
  30. _, err = exec.LookPath("protoc-gen-go")
  31. return err
  32. }