#!/usr/bin/env bash set -eo pipefail proto_dirs=$(find ./proto -path -prune -o -name '*.proto' -print0 | xargs -0 -n1 dirname | sort | uniq) for dir in $proto_dirs; do buf protoc \ -I "proto" \ -I "third_party/proto" \ --gogofaster_out=\ Mgoogle/protobuf/timestamp.proto=github.com/gogo/protobuf/types,\ Mgoogle/protobuf/duration.proto=github.com/golang/protobuf/ptypes/duration,\ plugins=grpc,paths=source_relative:. \ $(find "${dir}" -maxdepth 1 -name '*.proto') done cp -r ./tendermint/* ./proto/* rm -rf tendermint mv ./proto/tendermint/abci/types.pb.go ./abci/types mv ./proto/tendermint/rpc/grpc/types.pb.go ./rpc/grpc