34
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										34
									
								
								README.md
									
									
									
									
									
								
							| @@ -22,12 +22,6 @@ The plugin parses **protobuf** files, generates an **ast**, and walks a local ** | |||||||
| 3. the `ast` is given to [Golang's `text/template` engine](https://golang.org/pkg/text/template/) for each *user* template files | 3. the `ast` is given to [Golang's `text/template` engine](https://golang.org/pkg/text/template/) for each *user* template files | ||||||
| 4. the *funcmap* enriching the template engine is based on [Masterminds/sprig](https://github.com/Masterminds/sprig), and contains type-manipulation, iteration and language-specific helpers | 4. the *funcmap* enriching the template engine is based on [Masterminds/sprig](https://github.com/Masterminds/sprig), and contains type-manipulation, iteration and language-specific helpers | ||||||
|  |  | ||||||
| ## Web editor |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| [Demo server](http://protoc-gen-gotemplate.m.42.am/) |  | ||||||
|  |  | ||||||
| ## Usage | ## Usage | ||||||
|  |  | ||||||
| `protoc-gen-gotemplate` requires a **template_dir** directory *(by default `./templates`)*. | `protoc-gen-gotemplate` requires a **template_dir** directory *(by default `./templates`)*. | ||||||
| @@ -61,15 +55,14 @@ $> protoc --gotemplate_out=debug=true,template_dir=/path/to/template/directory:. | |||||||
| | `single-package-mode` | *false*       | `true` or `false`         | if *true*, `protoc` won't accept multiple packages to be compiled at once (*!= from `all`*), but will support `Message` lookup across the imported protobuf dependencies | | `single-package-mode` | *false*       | `true` or `false`         | if *true*, `protoc` won't accept multiple packages to be compiled at once (*!= from `all`*), but will support `Message` lookup across the imported protobuf dependencies | ||||||
| | `debug`               | *false*       | `true` or `false`         | if *true*, `protoc` will generate a more verbose output | | `debug`               | *false*       | `true` or `false`         | if *true*, `protoc` will generate a more verbose output | ||||||
| | `all`                 | *false*       | `true` or `false`         | if *true*, protobuf files without `Service` will also be parsed | | `all`                 | *false*       | `true` or `false`         | if *true*, protobuf files without `Service` will also be parsed | ||||||
| | `components`          | `micro`       | `micro, grpc, http, chi, gorilla | some values cant coexists like gorilla/chi or grpc/http | | `components`          | `micro`       | `micro|grpc|http|chi|gorilla` | some values cant coexists like gorilla/chi or grpc/http | ||||||
|  |  | ||||||
| ##### Hints | ##### Hints | ||||||
|  |  | ||||||
| Shipping the templates with your project is very smart and useful when contributing on git-based projects. | Shipping the templates with your project is very smart and useful when contributing on git-based projects. | ||||||
|  |  | ||||||
| Another workflow consists in having a dedicated repository for generic templates which is then versioned and vendored with multiple projects (npm package, golang vendor package, ...) | Another workflow consists in having a dedicated repository for generic templates which is then versioned and vendored with multiple projects (npm package, golang vendor package, ...) | ||||||
|  |  | ||||||
| See [examples](./examples). |  | ||||||
|  |  | ||||||
| ## Funcmap | ## Funcmap | ||||||
|  |  | ||||||
| This project uses [Masterminds/sprig](https://github.com/Masterminds/sprig) library and additional functions to extend the builtin [text/template](https://golang.org/pkg/text/template) helpers. | This project uses [Masterminds/sprig](https://github.com/Masterminds/sprig) library and additional functions to extend the builtin [text/template](https://golang.org/pkg/text/template) helpers. | ||||||
| @@ -135,28 +128,7 @@ See the project helpers for the complete list. | |||||||
|  |  | ||||||
| * Install the **Go** compiler and tools from https://golang.org/doc/install | * Install the **Go** compiler and tools from https://golang.org/doc/install | ||||||
| * Install **protobuf**: `go get -u github.com/golang/protobuf/{proto,protoc-gen-go}` | * Install **protobuf**: `go get -u github.com/golang/protobuf/{proto,protoc-gen-go}` | ||||||
| * Install **protoc-gen-gotemplate**: `go get -u moul.io/protoc-gen-gotemplate` | * Install **protoc-gen-gotemplate**: `go get -u github.com/unistack-org/protoc-gen-micro` | ||||||
|  |  | ||||||
| ## Docker |  | ||||||
|  |  | ||||||
| * automated docker hub build: [https://hub.docker.com/r/moul/protoc-gen-gotemplate/](https://hub.docker.com/r/moul/protoc-gen-gotemplate/) |  | ||||||
| * Based on [http://github.com/znly/protoc](http://github.com/znly/protoc) |  | ||||||
|  |  | ||||||
| Usage: |  | ||||||
|  |  | ||||||
| ```console |  | ||||||
| $> docker run --rm -v "$(pwd):$(pwd)" -w "$(pwd)" moul/protoc-gen-gotemplate -I. --gotemplate_out=./output/ ./*.proto |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| ## Projects using `protoc-gen-gotemplate` |  | ||||||
|  |  | ||||||
| * [kafka-gateway](https://github.com/moul/kafka-gateway/): Kafka gateway/proxy (gRPC + http) using Go-Kit |  | ||||||
| * [translator](https://github.com/moul/translator): Translator Micro-service using Gettext and Go-Kit |  | ||||||
| * [acl](https://github.com/moul/acl): ACL micro-service (gRPC/protobuf + http/json) |  | ||||||
|  |  | ||||||
| ## See also |  | ||||||
|  |  | ||||||
| * [pbhbs](https://github.com/gponsinet/pbhbs): protobuf gen based on handlebarjs template |  | ||||||
|  |  | ||||||
| ## License | ## License | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user