Add all arguments
This commit is contained in:
		
							
								
								
									
										18
									
								
								encoder.go
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								encoder.go
									
									
									
									
									
								
							| @@ -37,7 +37,7 @@ type Ast struct { | ||||
| 	Environment    []string                           `json:"environment"` | ||||
| } | ||||
|  | ||||
| func NewGenericTemplateBasedEncoder(templateDir string, service *descriptor.ServiceDescriptorProto, file *descriptor.FileDescriptorProto, debug bool, destinationDir string) (e *GenericTemplateBasedEncoder) { | ||||
| func NewGenericServiceTemplateBasedEncoder(templateDir string, service *descriptor.ServiceDescriptorProto, file *descriptor.FileDescriptorProto, debug bool, destinationDir string) (e *GenericTemplateBasedEncoder) { | ||||
| 	e = &GenericTemplateBasedEncoder{ | ||||
| 		service:        service, | ||||
| 		file:           file, | ||||
| @@ -53,6 +53,22 @@ func NewGenericTemplateBasedEncoder(templateDir string, service *descriptor.Serv | ||||
| 	return | ||||
| } | ||||
|  | ||||
| func NewGenericTemplateBasedEncoder(templateDir string, file *descriptor.FileDescriptorProto, debug bool, destinationDir string) (e *GenericTemplateBasedEncoder) { | ||||
| 	e = &GenericTemplateBasedEncoder{ | ||||
| 		service:        nil, | ||||
| 		file:           file, | ||||
| 		templateDir:    templateDir, | ||||
| 		debug:          debug, | ||||
| 		destinationDir: destinationDir, | ||||
| 	} | ||||
|  | ||||
| 	if debug { | ||||
| 		log.Printf("new encoder: file=%q template-dir=%q", file.GetName(), templateDir) | ||||
| 	} | ||||
|  | ||||
| 	return | ||||
| } | ||||
|  | ||||
| func (e *GenericTemplateBasedEncoder) templates() ([]string, error) { | ||||
| 	filenames := []string{} | ||||
|  | ||||
|   | ||||
							
								
								
									
										19
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								main.go
									
									
									
									
									
								
							| @@ -7,6 +7,7 @@ import ( | ||||
| 	"strings" | ||||
|  | ||||
| 	"github.com/golang/protobuf/proto" | ||||
| 	"github.com/golang/protobuf/protoc-gen-go/descriptor" | ||||
| 	"github.com/golang/protobuf/protoc-gen-go/generator" | ||||
| ) | ||||
|  | ||||
| @@ -32,6 +33,7 @@ func main() { | ||||
| 	templateDir := "./templates" | ||||
| 	destinationDir := "." | ||||
| 	debug := false | ||||
| 	all := false | ||||
| 	if parameter := g.Request.GetParameter(); parameter != "" { | ||||
| 		for _, param := range strings.Split(parameter, ",") { | ||||
| 			parts := strings.Split(param, "=") | ||||
| @@ -55,6 +57,15 @@ func main() { | ||||
| 					log.Printf("Err: invalid value for debug: %q", parts[1]) | ||||
| 				} | ||||
| 				break | ||||
| 			case "all": | ||||
| 				switch strings.ToLower(parts[1]) { | ||||
| 				case "true", "t": | ||||
| 					all = true | ||||
| 				case "false", "f": | ||||
| 				default: | ||||
| 					log.Printf("Err: invalid value for debug: %q", parts[1]) | ||||
| 				} | ||||
| 				break | ||||
| 			default: | ||||
| 				log.Printf("Err: unknown parameter: %q", param) | ||||
| 			} | ||||
| @@ -63,8 +74,14 @@ func main() { | ||||
|  | ||||
| 	// Generate the encoders | ||||
| 	for _, file := range g.Request.GetProtoFile() { | ||||
| 		if all { | ||||
| 			encoder := NewGenericTemplateBasedEncoder(templateDir, file, debug, destinationDir) | ||||
| 			g.Response.File = append(g.Response.File, encoder.Files()...) | ||||
| 			continue | ||||
| 		} | ||||
|  | ||||
| 		for _, service := range file.GetService() { | ||||
| 			encoder := NewGenericTemplateBasedEncoder(templateDir, service, file, debug, destinationDir) | ||||
| 			encoder := NewGenericServiceTemplateBasedEncoder(templateDir, service, file, debug, destinationDir) | ||||
| 			g.Response.File = append(g.Response.File, encoder.Files()...) | ||||
| 		} | ||||
| 	} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user