1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- package generator
- import (
- "fmt"
- "runtime"
- "github.com/tal-tech/go-zero/tools/goctl/util/console"
- "github.com/tal-tech/go-zero/tools/goctl/util/env"
- )
- // DefaultGenerator defines the environment needs of rpc service generation
- type DefaultGenerator struct {
- log console.Console
- }
- // just test interface implement
- var _ Generator = (*DefaultGenerator)(nil)
- // NewDefaultGenerator returns an instance of DefaultGenerator
- func NewDefaultGenerator() Generator {
- log := console.NewColorConsole()
- return &DefaultGenerator{
- log: log,
- }
- }
- // Prepare provides environment detection generated by rpc service,
- // including go environment, protoc, whether protoc-gen-go is installed or not
- func (g *DefaultGenerator) Prepare() error {
- if !env.CanExec() {
- return fmt.Errorf("%s: can not start new processes using os.StartProcess or exec.Command", runtime.GOOS)
- }
- if _, err := env.LookUpGo(); err != nil {
- return err
- }
- if _, err := env.LookUpProtoc(); err != nil {
- return err
- }
- _, err := env.LookUpProtocGenGoctl()
- if err == nil {
- return nil
- }
- g.log.Warning("%+v", err)
- _, err = env.LookUpProtocGenGo()
- return err
- }
|