mirror of
https://github.com/lightninglabs/loop.git
synced 2026-08-13 12:33:03 +02:00
Protobuf does not allow naming conflicts for files within the same process, because all proto messages register themselves in a global registry. This is problematic because the server's itests import the client's looprpc package to make rpc queries to the loopd client, thus importing duplicate common.proto and server.proto from the client's looprc package (since they're both in there as well). This change moves the server's proto files into their own directory so that they are not imported when we want to use the client's files. We cannot change the package name for the server, because that would be a breaking change (the package name is included in URIS). Fortunately, we have the go_package option which allows us to place generated files in a different location.
23 lines
685 B
Bash
Executable file
23 lines
685 B
Bash
Executable file
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
# Directory of the script file, independent of where it's called from.
|
|
DIR="$(cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd)"
|
|
|
|
PROTOBUF_VERSION=$(go list -f '{{.Version}}' -m google.golang.org/protobuf)
|
|
GRPC_GATEWAY_VERSION=$(go list -f '{{.Version}}' -m github.com/grpc-ecosystem/grpc-gateway/v2)
|
|
|
|
echo "Building protobuf compiler docker image..."
|
|
docker build -t loop-protobuf-builder \
|
|
--build-arg PROTOBUF_VERSION="$PROTOBUF_VERSION" \
|
|
--build-arg GRPC_GATEWAY_VERSION="$GRPC_GATEWAY_VERSION" \
|
|
.
|
|
|
|
echo "Compiling and formatting *.proto files..."
|
|
docker run \
|
|
--rm \
|
|
--user $UID:$UID \
|
|
-e UID=$UID \
|
|
-v "$DIR/../:/build" \
|
|
loop-protobuf-builder
|