regenerate.bash 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #!/bin/bash
  2. # Copyright 2018 The Go Authors. All rights reserved.
  3. # Use of this source code is governed by a BSD-style
  4. # license that can be found in the LICENSE file.
  5. set -e
  6. go generate internal/cmd/generate-types/main.go
  7. # Install the working tree's protoc-gen-gen in a tempdir.
  8. tmpdir=$(mktemp -d -t protobuf-regen.XXXXXX)
  9. trap 'rm -rf $tmpdir' EXIT
  10. mkdir -p $tmpdir/bin
  11. PATH=$tmpdir/bin:$PATH
  12. GOBIN=$tmpdir/bin go install ./cmd/protoc-gen-go
  13. GOBIN=$tmpdir/bin go install ./cmd/protoc-gen-go-grpc
  14. # Generate various test protos.
  15. PROTO_DIRS=(
  16. cmd/protoc-gen-go/testdata
  17. internal/testprotos/test
  18. )
  19. GRPC_PROTO_DIRS=(
  20. cmd/protoc-gen-go-grpc/testdata
  21. )
  22. for dir in ${PROTO_DIRS[@]}; do
  23. for p in `find $dir -name "*.proto"`; do
  24. echo "# $p"
  25. PROTOC_GEN_GO_ENABLE_REFLECT=1 protoc -I$dir \
  26. --go_out=paths=source_relative:$dir \
  27. $p
  28. done
  29. done
  30. for dir in ${GRPC_PROTO_DIRS[@]}; do
  31. for p in `find $dir -name "*.proto"`; do
  32. echo "# $p"
  33. PROTOC_GEN_GO_ENABLE_REFLECT=1 protoc -I$dir \
  34. --go-grpc_out=paths=source_relative:$dir \
  35. $p
  36. done
  37. done
  38. # Generate descriptor and plugin.
  39. # TODO: Make this more automated.
  40. echo "# types/descriptor/descriptor.proto"
  41. mkdir -p $tmpdir/src/google/protobuf
  42. cp ./types/descriptor/descriptor.proto $tmpdir/src/google/protobuf/descriptor.proto
  43. PROTOC_GEN_GO_ENABLE_REFLECT=1 protoc -I$tmpdir/src \
  44. --go_out=paths=source_relative:$tmpdir/src \
  45. $tmpdir/src/google/protobuf/descriptor.proto
  46. cp $tmpdir/src/google/protobuf/descriptor.pb.go ./types/descriptor/descriptor.pb.go
  47. echo "# types/plugin/plugin.proto"
  48. mkdir -p $tmpdir/src/google/protobuf/compiler
  49. cp ./types/plugin/plugin.proto $tmpdir/src/google/protobuf/compiler/plugin.proto
  50. PROTOC_GEN_GO_ENABLE_REFLECT=1 protoc -I$tmpdir/src \
  51. --go_out=paths=source_relative:$tmpdir/src \
  52. $tmpdir/src/google/protobuf/compiler/plugin.proto
  53. cp $tmpdir/src/google/protobuf/compiler/plugin.pb.go ./types/plugin/plugin.pb.go
  54. echo "# encoding/textpb/testprotos/pb?/test.proto"
  55. PROTOC_GEN_GO_ENABLE_REFLECT=1 protoc --go_out=paths=source_relative:. \
  56. encoding/textpb/testprotos/pb?/test.proto
  57. echo "# reflect/protoregistry/testprotos/test.proto"
  58. PROTOC_GEN_GO_ENABLE_REFLECT=1 protoc --go_out=paths=source_relative:. \
  59. reflect/protoregistry/testprotos/test.proto