123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package generator
- import (
- "path/filepath"
- "strings"
- "github.com/tal-tech/go-zero/tools/goctl/util"
- "github.com/tal-tech/go-zero/tools/goctl/util/stringx"
- )
- const rpcTemplateText = `syntax = "proto3";
- package {{.package}};
- message Request {
- string ping = 1;
- }
- message Response {
- string pong = 1;
- }
- service {{.serviceName}} {
- rpc Ping(Request) returns(Response);
- }
- `
- // ProtoTmpl returns an sample of a proto file
- func ProtoTmpl(out string) error {
- protoFilename := filepath.Base(out)
- serviceName := stringx.From(strings.TrimSuffix(protoFilename, filepath.Ext(protoFilename)))
- text, err := util.LoadTemplate(category, rpcTemplateFile, rpcTemplateText)
- if err != nil {
- return err
- }
- dir := filepath.Dir(out)
- err = util.MkdirIfNotExist(dir)
- if err != nil {
- return err
- }
- err = util.With("t").Parse(text).SaveTo(map[string]string{
- "package": serviceName.Untitle(),
- "serviceName": serviceName.Title(),
- }, out, false)
- return err
- }
|