github.com/mloves0824/enron/cmd/enron@v0.0.0-20230830012320-113bbf6be3c8/internal/proto/add/template.go (about) 1 package add 2 3 import ( 4 "bytes" 5 "strings" 6 "text/template" 7 ) 8 9 const protoTemplate = ` 10 syntax = "proto3"; 11 12 package {{.Package}}; 13 14 option go_package = "{{.GoPackage}}"; 15 option java_multiple_files = true; 16 option java_package = "{{.JavaPackage}}"; 17 18 service {{.Service}} { 19 rpc Create{{.Service}} (Create{{.Service}}Request) returns (Create{{.Service}}Reply); 20 rpc Update{{.Service}} (Update{{.Service}}Request) returns (Update{{.Service}}Reply); 21 rpc Delete{{.Service}} (Delete{{.Service}}Request) returns (Delete{{.Service}}Reply); 22 rpc Get{{.Service}} (Get{{.Service}}Request) returns (Get{{.Service}}Reply); 23 rpc List{{.Service}} (List{{.Service}}Request) returns (List{{.Service}}Reply); 24 } 25 26 message Create{{.Service}}Request {} 27 message Create{{.Service}}Reply {} 28 29 message Update{{.Service}}Request {} 30 message Update{{.Service}}Reply {} 31 32 message Delete{{.Service}}Request {} 33 message Delete{{.Service}}Reply {} 34 35 message Get{{.Service}}Request {} 36 message Get{{.Service}}Reply {} 37 38 message List{{.Service}}Request {} 39 message List{{.Service}}Reply {} 40 ` 41 42 func (p *Proto) execute() ([]byte, error) { 43 buf := new(bytes.Buffer) 44 tmpl, err := template.New("proto").Parse(strings.TrimSpace(protoTemplate)) 45 if err != nil { 46 return nil, err 47 } 48 if err := tmpl.Execute(buf, p); err != nil { 49 return nil, err 50 } 51 return buf.Bytes(), nil 52 }