You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.4 KiB
50 lines
1.4 KiB
#!/bin/bash |
|
|
|
set -e |
|
|
|
# generate compiles the *.pb.go stubs from the *.proto files. |
|
function generate() { |
|
echo "Generating root gRPC server protos" |
|
|
|
PROTOS="rpc.proto walletunlocker.proto stateservice.proto **/*.proto" |
|
|
|
# For each of the sub-servers, we then generate their protos, but a restricted |
|
# set as they don't yet require REST proxies, or swagger docs. |
|
for file in $PROTOS; do |
|
DIRECTORY=$(dirname "${file}") |
|
echo "Generating protos from ${file}, into ${DIRECTORY}" |
|
|
|
# Generate the protos. |
|
protoc -I/usr/local/include -I. \ |
|
--go_out=plugins=grpc,paths=source_relative:. \ |
|
"${file}" |
|
|
|
# Generate the REST reverse proxy. |
|
protoc -I/usr/local/include -I. \ |
|
--grpc-gateway_out=logtostderr=true,paths=source_relative,grpc_api_configuration=rest-annotations.yaml:. \ |
|
"${file}" |
|
|
|
|
|
# Finally, generate the swagger file which describes the REST API in detail. |
|
protoc -I/usr/local/include -I. \ |
|
--swagger_out=logtostderr=true,grpc_api_configuration=rest-annotations.yaml:. \ |
|
"${file}" |
|
done |
|
} |
|
|
|
# format formats the *.proto files with the clang-format utility. |
|
function format() { |
|
find . -name "*.proto" -print0 | xargs -0 clang-format --style=file -i |
|
} |
|
|
|
# Compile and format the lnrpc package. |
|
pushd lnrpc |
|
format |
|
generate |
|
popd |
|
|
|
if [[ "$COMPILE_MOBILE" == "1" ]]; then |
|
pushd mobile |
|
./gen_bindings.sh $FALAFEL_VERSION |
|
popd |
|
fi
|
|
|