2022-08-12 16:29:27 +00:00
|
|
|
#!/bin/sh
|
|
|
|
|
2023-05-22 14:56:15 +00:00
|
|
|
# generate LND grpc definitions
|
2022-08-12 16:29:27 +00:00
|
|
|
cd api/lightning
|
|
|
|
[ -d googleapis ] || git clone https://github.com/googleapis/googleapis.git googleapis
|
2023-04-22 18:54:03 +00:00
|
|
|
|
|
|
|
# LND Lightning proto
|
2022-08-12 16:29:27 +00:00
|
|
|
curl -o lightning.proto -s https://raw.githubusercontent.com/lightningnetwork/lnd/master/lnrpc/lightning.proto
|
|
|
|
python3 -m grpc_tools.protoc --proto_path=googleapis:. --python_out=. --grpc_python_out=. lightning.proto
|
2023-04-22 18:54:03 +00:00
|
|
|
|
|
|
|
# LND Invoices proto
|
2022-08-12 16:29:27 +00:00
|
|
|
curl -o invoices.proto -s https://raw.githubusercontent.com/lightningnetwork/lnd/master/lnrpc/invoicesrpc/invoices.proto
|
|
|
|
python3 -m grpc_tools.protoc --proto_path=googleapis:. --python_out=. --grpc_python_out=. invoices.proto
|
2023-04-22 18:54:03 +00:00
|
|
|
|
|
|
|
# LND Router proto
|
2022-08-12 16:29:27 +00:00
|
|
|
curl -o router.proto -s https://raw.githubusercontent.com/lightningnetwork/lnd/master/lnrpc/routerrpc/router.proto
|
|
|
|
python3 -m grpc_tools.protoc --proto_path=googleapis:. --python_out=. --grpc_python_out=. router.proto
|
|
|
|
|
2023-05-16 17:12:15 +00:00
|
|
|
# LND Signer proto
|
|
|
|
curl -o signer.proto -s https://raw.githubusercontent.com/lightningnetwork/lnd/master/lnrpc/signrpc/signer.proto
|
|
|
|
python3 -m grpc_tools.protoc --proto_path=googleapis:. --python_out=. --grpc_python_out=. signer.proto
|
|
|
|
|
2023-04-22 18:54:03 +00:00
|
|
|
# LND Versioner proto
|
|
|
|
curl -o verrpc.proto -s https://raw.githubusercontent.com/lightningnetwork/lnd/master/lnrpc/verrpc/verrpc.proto
|
|
|
|
python3 -m grpc_tools.protoc --proto_path=googleapis:. --python_out=. --grpc_python_out=. verrpc.proto
|
|
|
|
|
2023-05-22 14:56:15 +00:00
|
|
|
# generate CLN grpc definitions
|
|
|
|
curl -o node.proto -s https://raw.githubusercontent.com/daywalker90/lightning/hodlvoice/cln-grpc/proto/node.proto
|
|
|
|
curl -o primitives.proto -s https://raw.githubusercontent.com/daywalker90/lightning/hodlvoice/cln-grpc/proto/primitives.proto
|
|
|
|
python3 -m grpc_tools.protoc --proto_path=. --python_out=. --grpc_python_out=. node.proto primitives.proto
|
|
|
|
|
2023-04-23 21:58:21 +00:00
|
|
|
# delete googleapis
|
|
|
|
rm -r googleapis
|
|
|
|
|
2022-08-12 16:29:27 +00:00
|
|
|
# patch generated files relative imports
|
2023-05-22 14:56:15 +00:00
|
|
|
# LND
|
2022-08-12 16:29:27 +00:00
|
|
|
sed -i 's/^import .*_pb2 as/from . \0/' router_pb2.py
|
2023-05-16 17:12:15 +00:00
|
|
|
sed -i 's/^import .*_pb2 as/from . \0/' signer_pb2.py
|
2022-08-12 16:29:27 +00:00
|
|
|
sed -i 's/^import .*_pb2 as/from . \0/' invoices_pb2.py
|
2023-04-22 18:54:03 +00:00
|
|
|
sed -i 's/^import .*_pb2 as/from . \0/' verrpc_pb2.py
|
2022-08-12 16:29:27 +00:00
|
|
|
sed -i 's/^import .*_pb2 as/from . \0/' router_pb2_grpc.py
|
2023-05-16 17:12:15 +00:00
|
|
|
sed -i 's/^import .*_pb2 as/from . \0/' signer_pb2_grpc.py
|
2022-08-12 16:29:27 +00:00
|
|
|
sed -i 's/^import .*_pb2 as/from . \0/' lightning_pb2_grpc.py
|
|
|
|
sed -i 's/^import .*_pb2 as/from . \0/' invoices_pb2_grpc.py
|
2023-05-15 09:46:59 +00:00
|
|
|
sed -i 's/^import .*_pb2 as/from . \0/' verrpc_pb2_grpc.py
|
|
|
|
|
2023-05-22 14:56:15 +00:00
|
|
|
# CLN
|
|
|
|
sed -i 's/^import .*_pb2 as/from . \0/' node_pb2.py
|
|
|
|
sed -i 's/^import .*_pb2 as/from . \0/' node_pb2_grpc.py
|
|
|
|
|
2023-05-15 09:46:59 +00:00
|
|
|
# On development environments the local volume will be mounted over these files. We copy pb2 and grpc files to /tmp/.
|
|
|
|
# This way, we can find if these files are missing with our entrypoint.sh and copy them into the volume.
|
|
|
|
|
|
|
|
cp -r *_pb2.py /tmp/
|
2023-05-22 14:56:15 +00:00
|
|
|
cp -r *_grpc.py /tmp/
|