Compare commits
1 Commits
v1.7.0
...
dev/moul/e
Author | SHA1 | Date | |
---|---|---|---|
|
71d0e94753 |
@@ -1,34 +0,0 @@
|
||||
run:
|
||||
deadline: 1m
|
||||
tests: false
|
||||
#skip-files:
|
||||
# - ".*\\.gen\\.go"
|
||||
|
||||
linters-settings:
|
||||
golint:
|
||||
min-confidence: 0
|
||||
maligned:
|
||||
suggest-new: true
|
||||
goconst:
|
||||
min-len: 5
|
||||
min-occurrences: 4
|
||||
misspell:
|
||||
locale: US
|
||||
|
||||
linters:
|
||||
disable-all: true
|
||||
enable:
|
||||
- goconst
|
||||
- misspell
|
||||
- deadcode
|
||||
- misspell
|
||||
- structcheck
|
||||
- errcheck
|
||||
- unused
|
||||
- varcheck
|
||||
- staticcheck
|
||||
- unconvert
|
||||
- gofmt
|
||||
- goimports
|
||||
- golint
|
||||
- ineffassign
|
@@ -3,14 +3,15 @@ go: 1.11.x
|
||||
go_import_path: moul.io/protoc-gen-gotemplate
|
||||
install:
|
||||
- go get github.com/Masterminds/glide
|
||||
- wget https://raw.githubusercontent.com/grpc-ecosystem/grpc-gateway/v1.5.0/.travis/install-protoc.sh && chmod +x install-protoc.sh && ./install-protoc.sh 3.4.0
|
||||
- wget https://raw.githubusercontent.com/grpc-ecosystem/grpc-gateway/master/.travis/install-protoc.sh && chmod +x install-protoc.sh && ./install-protoc.sh 3.4.0
|
||||
- go get -u github.com/golang/protobuf/protoc-gen-go
|
||||
- go get github.com/securego/gosec/cmd/gosec/...
|
||||
- curl -sfL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s v1.12.2
|
||||
- go get -u github.com/alecthomas/gometalinter
|
||||
- gometalinter --install
|
||||
script:
|
||||
- make install
|
||||
- make test
|
||||
- PATH=$PATH:$(pwd)/bin make lint
|
||||
- make lint
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/local
|
||||
|
2
Makefile
2
Makefile
@@ -33,4 +33,4 @@ docker.push: docker.build
|
||||
|
||||
.PHONY: lint
|
||||
lint:
|
||||
golangci-lint run --verbose . ./helpers ./cmd/...
|
||||
gometalinter --disable-all --enable=errcheck --enable=vet --enable=vetshadow --enable=golint --enable=gosec --enable=ineffassign --enable=goconst --enable=goimports --enable=gofmt --exclude="Binds to all network interfaces" --exclude="should have comment" --enable=staticcheck --enable=gosimple --enable=misspell --deadline=120s . ./cmd/... ./helpers/...
|
||||
|
81
README.md
81
README.md
@@ -76,57 +76,56 @@ This project uses [Masterminds/sprig](https://github.com/Masterminds/sprig) libr
|
||||
Non-exhaustive list of new helpers:
|
||||
|
||||
* **all the functions from [sprig](https://github.com/Masterminds/sprig)**
|
||||
* `add`
|
||||
* `boolFieldExtension`
|
||||
* `camelCase`
|
||||
* `contains`
|
||||
* `divide`
|
||||
* `fieldMapKeyType`
|
||||
* `fieldMapValueType`
|
||||
* `string`
|
||||
* `json`
|
||||
* `prettyjson`
|
||||
* `splitArray`
|
||||
* `first`
|
||||
* `getEnumValue`
|
||||
* `getMessageType`
|
||||
* `last`
|
||||
* `upperFirst`
|
||||
* `lowerFirst`
|
||||
* `camelCase`
|
||||
* `lowerCamelCase`
|
||||
* `kebabCase`
|
||||
* `contains`
|
||||
* `trimstr`
|
||||
* `index`
|
||||
* `snakeCase`
|
||||
* `getProtoFile`
|
||||
* `goNormalize`
|
||||
* `goTypeWithPackage`
|
||||
* `getMessageType`
|
||||
* `getEnumValue`
|
||||
* `isFieldMessage`
|
||||
* `isFieldMessageTimeStamp`
|
||||
* `isFieldRepeated`
|
||||
* `haskellType`
|
||||
* `goType`
|
||||
* `goZeroValue`
|
||||
* `haskellType`
|
||||
* `httpBody`
|
||||
* `goTypeWithPackage`
|
||||
* `jsType`
|
||||
* `jsSuffixReserved`
|
||||
* `namespacedFlowType`
|
||||
* `httpVerb`
|
||||
* `httpPath`
|
||||
* `httpPathsAdditionalBindings`
|
||||
* `httpVerb`
|
||||
* `index`
|
||||
* `int64FieldExtension`
|
||||
* `isFieldMap`
|
||||
* `isFieldMessageTimeStamp`
|
||||
* `isFieldMessage`
|
||||
* `isFieldRepeated`
|
||||
* `jsSuffixReserved`
|
||||
* `jsType`
|
||||
* `json`
|
||||
* `kebabCase`
|
||||
* `last`
|
||||
* `leadingComment`
|
||||
* `leadingDetachedComments`
|
||||
* `lowerCamelCase`
|
||||
* `lowerFirst`
|
||||
* `lowerGoNormalize`
|
||||
* `multiply`
|
||||
* `namespacedFlowType`
|
||||
* `prettyjson`
|
||||
* `replaceDict`
|
||||
* `httpBody`
|
||||
* `shortType`
|
||||
* `snakeCase`
|
||||
* `splitArray`
|
||||
* `urlHasVarsFromMessage`
|
||||
* `lowerGoNormalize`
|
||||
* `goNormalize`
|
||||
* `leadingComment`
|
||||
* `trailingComment`
|
||||
* `leadingDetachedComments`
|
||||
* `stringFieldExtension`
|
||||
* `stringMethodOptionsExtension`
|
||||
* `string`
|
||||
* `boolFieldExtension`
|
||||
* `isFieldMap`
|
||||
* `fieldMapKeyType`
|
||||
* `fieldMapValueType`
|
||||
* `replaceDict`
|
||||
* `add`
|
||||
* `subtract`
|
||||
* `trailingComment`
|
||||
* `trimstr`
|
||||
* `upperFirst`
|
||||
* `urlHasVarsFromMessage`
|
||||
* `multiply`
|
||||
* `divide`
|
||||
|
||||
See the project helpers for the complete list.
|
||||
|
||||
|
@@ -1,6 +0,0 @@
|
||||
/Users/moul/go/src/moul.io/protoc-gen-gotemplate/assets:
|
||||
total used in directory 552 available 9223372036849978910
|
||||
drwxr-xr-x 4 moul staff 128 Dec 9 11:31 .
|
||||
lrwxr-xr-x 1 moul staff 33 Dec 9 11:31 .#web-editor.jpg -> moul@manfred-spacegray.local.9471
|
||||
drwxr-xr-x 21 moul staff 672 Sep 13 18:05 ..
|
||||
-rw-r--r--@ 1 moul staff 280357 Oct 26 2017 web-editor.jpg
|
@@ -11,7 +11,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/golang/protobuf/protoc-gen-go/descriptor"
|
||||
plugin_go "github.com/golang/protobuf/protoc-gen-go/plugin"
|
||||
"github.com/golang/protobuf/protoc-gen-go/plugin"
|
||||
|
||||
pgghelpers "moul.io/protoc-gen-gotemplate/helpers"
|
||||
)
|
||||
|
@@ -5,8 +5,8 @@ import (
|
||||
"fmt"
|
||||
|
||||
"github.com/go-kit/kit/endpoint"
|
||||
oldcontext "golang.org/x/net/context"
|
||||
pb "moul.io/protoc-gen-gotemplate/examples/go-kit/services/session/gen/pb"
|
||||
oldcontext "golang.org/x/net/context"
|
||||
)
|
||||
|
||||
var _ = endpoint.Chain
|
||||
|
@@ -5,8 +5,8 @@ import (
|
||||
"fmt"
|
||||
|
||||
"github.com/go-kit/kit/endpoint"
|
||||
oldcontext "golang.org/x/net/context"
|
||||
pb "moul.io/protoc-gen-gotemplate/examples/go-kit/services/sprint/gen/pb"
|
||||
oldcontext "golang.org/x/net/context"
|
||||
)
|
||||
|
||||
var _ = endpoint.Chain
|
||||
|
@@ -5,8 +5,8 @@ import (
|
||||
"fmt"
|
||||
|
||||
"github.com/go-kit/kit/endpoint"
|
||||
oldcontext "golang.org/x/net/context"
|
||||
pb "moul.io/protoc-gen-gotemplate/examples/go-kit/services/user/gen/pb"
|
||||
oldcontext "golang.org/x/net/context"
|
||||
)
|
||||
|
||||
var _ = endpoint.Chain
|
||||
|
@@ -2,8 +2,6 @@
|
||||
package company
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"moul.io/protoc-gen-gotemplate/examples/import/output/models/article"
|
||||
"moul.io/protoc-gen-gotemplate/examples/import/output/models/common"
|
||||
)
|
||||
@@ -12,8 +10,20 @@ type Repository interface {
|
||||
GetArticle(getarticle *common.GetArticle ) (*company.Article, []*company.Storage, error)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// ------------------------- Public SDK -----------------------------
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// GetArticle : proto: missing extension proto: missing extension
|
||||
func (sdk *Sdk) GetArticle(ctx context.Context,
|
||||
getarticle *article.GetArticle, token, requestID string)(article *article.Article, storages []*article.GetArticleResponse_Storage, err error) {
|
||||
@@ -21,6 +31,10 @@ func (sdk *Sdk) GetArticle(ctx context.Context,
|
||||
out := &pb.GetArticleResponse{}
|
||||
_ = out
|
||||
|
||||
|
||||
return out.Article, out.Storages, nil
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@@ -4,8 +4,8 @@ package bbb
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"golang.org/x/net/context"
|
||||
"moul.io/protoc-gen-gotemplate/examples/single-package-mode/output/aaa"
|
||||
"golang.org/x/net/context"
|
||||
)
|
||||
|
||||
type Service struct{}
|
||||
|
9
go.mod
9
go.mod
@@ -4,6 +4,7 @@ require (
|
||||
github.com/Masterminds/semver v1.2.2 // indirect
|
||||
github.com/Masterminds/sprig v2.14.1+incompatible
|
||||
github.com/aokoli/goutils v0.0.0-20170502144750-e57d01ace047 // indirect
|
||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b // indirect
|
||||
github.com/golang/protobuf v0.0.0-20161117033126-8ee79997227b
|
||||
github.com/gorilla/context v0.0.0-20160226214623-1ea25387ff6f // indirect
|
||||
@@ -12,10 +13,12 @@ require (
|
||||
github.com/grpc-ecosystem/grpc-gateway v1.2.2
|
||||
github.com/huandu/xstrings v0.0.0-20151130125119-3959339b3335
|
||||
github.com/imdario/mergo v0.0.0-20171009183408-7fe0c75c13ab // indirect
|
||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||
github.com/satori/go.uuid v1.1.0 // indirect
|
||||
github.com/stretchr/testify v1.3.0 // indirect
|
||||
github.com/stretchr/testify v1.2.2 // indirect
|
||||
golang.org/x/crypto v0.0.0-20170516161655-0fe963104e9d // indirect
|
||||
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4 // indirect
|
||||
golang.org/x/net v0.0.0-20170108160505-da2b4fa28524 // indirect
|
||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f // indirect
|
||||
google.golang.org/genproto v0.0.0-20170517234824-bb3573be0c48
|
||||
gopkg.in/yaml.v2 v2.2.2 // indirect
|
||||
gopkg.in/yaml.v2 v2.2.1 // indirect
|
||||
)
|
||||
|
19
go.sum
19
go.sum
@@ -4,8 +4,8 @@ github.com/Masterminds/sprig v2.14.1+incompatible h1:rTHERm50Xp1Cbb8x7xBCeDp//jM
|
||||
github.com/Masterminds/sprig v2.14.1+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o=
|
||||
github.com/aokoli/goutils v0.0.0-20170502144750-e57d01ace047 h1:Bn0iqJ/349f606hR0juIGyheAI6+hyg9XUOLhN9udLo=
|
||||
github.com/aokoli/goutils v0.0.0-20170502144750-e57d01ace047/go.mod h1:SijmP0QR8LtwsmDs8Yii5Z/S4trXFGFC2oO5g9DP+DQ=
|
||||
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b h1:VKtxabqXZkF25pY9ekfRL6a582T4P37/31XEstQ5p58=
|
||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
||||
github.com/golang/protobuf v0.0.0-20161117033126-8ee79997227b h1:fE/yi9pibxGEc0gSJuEShcsBXE2d5FW3OudsjE9tKzQ=
|
||||
@@ -26,16 +26,17 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/satori/go.uuid v1.1.0 h1:B9KXyj+GzIpJbV7gmr873NsY6zpbxNy24CBtGrk7jHo=
|
||||
github.com/satori/go.uuid v1.1.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
|
||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||
github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w=
|
||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
golang.org/x/crypto v0.0.0-20170516161655-0fe963104e9d h1:qjfFh1YMn6m60QTGoG+IlwUMhNlXJbDyCa6EkHM/N2w=
|
||||
golang.org/x/crypto v0.0.0-20170516161655-0fe963104e9d/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4 h1:YUO/7uOKsKeq9UokNS62b8FYywz3ker1l1vDZRCRefw=
|
||||
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
golang.org/x/net v0.0.0-20170108160505-da2b4fa28524 h1:h2R5t9TXOJ/PVrYAFToVQe0c5AIMZPmlEKFhmYS1iGs=
|
||||
golang.org/x/net v0.0.0-20170108160505-da2b4fa28524/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f h1:wMNYb4v58l5UBM7MYRLPG6ZhfOqbKu7X5eyFl8ZhKvA=
|
||||
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||
google.golang.org/genproto v0.0.0-20170517234824-bb3573be0c48 h1:xfoW+Di7qQQUnjptcGb4/rpc701e3RvfNmaywfMxQVI=
|
||||
google.golang.org/genproto v0.0.0-20170517234824-bb3573be0c48/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
|
||||
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
gopkg.in/yaml.v2 v2.2.1 h1:mUhvW9EsL+naU5Q3cakzfE91YhliOondGd6ZrsDBHQE=
|
||||
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||
|
@@ -147,7 +147,6 @@ var ProtoHelpersFuncMap = template.FuncMap{
|
||||
"trailingComment": trailingComment,
|
||||
"leadingDetachedComments": leadingDetachedComments,
|
||||
"stringFieldExtension": stringFieldExtension,
|
||||
"int64FieldExtension": int64FieldExtension,
|
||||
"stringMethodOptionsExtension": stringMethodOptionsExtension,
|
||||
"boolMethodOptionsExtension": boolMethodOptionsExtension,
|
||||
"boolFieldExtension": boolFieldExtension,
|
||||
@@ -283,12 +282,12 @@ func samePath(a, b []int32) bool {
|
||||
return true
|
||||
}
|
||||
|
||||
/*func findSourceInfoLocation(i interface{}) *descriptor.SourceCodeInfo_Location {
|
||||
func findSourceInfoLocation(i interface{}) *descriptor.SourceCodeInfo_Location {
|
||||
if pathMap == nil {
|
||||
return nil
|
||||
}
|
||||
return pathMap[i]
|
||||
}*/
|
||||
}
|
||||
|
||||
func leadingComment(i interface{}) string {
|
||||
loc := pathMap[i]
|
||||
@@ -378,41 +377,6 @@ func stringFieldExtension(fieldID int32, f *descriptor.FieldDescriptorProto) str
|
||||
return *str
|
||||
}
|
||||
|
||||
func int64FieldExtension(fieldID int32, f *descriptor.FieldDescriptorProto) int64 {
|
||||
if f == nil {
|
||||
return 0
|
||||
}
|
||||
if f.Options == nil {
|
||||
return 0
|
||||
}
|
||||
var extendedType *descriptor.FieldOptions
|
||||
var extensionType *string
|
||||
|
||||
eds := proto.RegisteredExtensions(f.Options)
|
||||
if eds[fieldID] == nil {
|
||||
ed := &proto.ExtensionDesc{
|
||||
ExtendedType: extendedType,
|
||||
ExtensionType: extensionType,
|
||||
Field: fieldID,
|
||||
Tag: fmt.Sprintf("bytes,%d", fieldID),
|
||||
}
|
||||
proto.RegisterExtension(ed)
|
||||
eds = proto.RegisteredExtensions(f.Options)
|
||||
}
|
||||
|
||||
ext, err := proto.GetExtension(f.Options, eds[fieldID])
|
||||
if err != nil {
|
||||
return 0
|
||||
}
|
||||
|
||||
i, ok := ext.(*int64)
|
||||
if !ok {
|
||||
return 0
|
||||
}
|
||||
|
||||
return *i
|
||||
}
|
||||
|
||||
func boolMethodOptionsExtension(fieldID int32, f *descriptor.MethodDescriptorProto) bool {
|
||||
if f == nil {
|
||||
return false
|
||||
@@ -429,7 +393,7 @@ func boolMethodOptionsExtension(fieldID int32, f *descriptor.MethodDescriptorPro
|
||||
ExtendedType: extendedType,
|
||||
ExtensionType: extensionType,
|
||||
Field: fieldID,
|
||||
Tag: fmt.Sprintf("varint,%d", fieldID),
|
||||
Tag: fmt.Sprintf("bytes,%d", fieldID),
|
||||
}
|
||||
proto.RegisterExtension(ed)
|
||||
eds = proto.RegisteredExtensions(f.Options)
|
||||
|
2
main.go
2
main.go
@@ -8,7 +8,7 @@ import (
|
||||
|
||||
"github.com/golang/protobuf/proto"
|
||||
"github.com/golang/protobuf/protoc-gen-go/generator"
|
||||
plugin_go "github.com/golang/protobuf/protoc-gen-go/plugin"
|
||||
"github.com/golang/protobuf/protoc-gen-go/plugin"
|
||||
ggdescriptor "github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway/descriptor"
|
||||
|
||||
pgghelpers "moul.io/protoc-gen-gotemplate/helpers"
|
||||
|
@@ -1,6 +1,5 @@
|
||||
{
|
||||
"extends": [
|
||||
"config:base"
|
||||
],
|
||||
"groupName": "all"
|
||||
]
|
||||
}
|
||||
|
Reference in New Issue
Block a user