58 lines
2.1 KiB
Bash
Executable File
58 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
PROM_VERSION=v2.39.0
|
|
PROTO_VERSION=v1.3.2
|
|
|
|
# SRC_DIR is from protoc perspective. ie its the destination for our checkouts/clones
|
|
SRC_DIR=opentelemetry/exporter/prometheus_remote_write/gen/
|
|
|
|
#TODO:
|
|
# Check that black & protoc are installed properly
|
|
echo "Creating our destination directory"
|
|
mkdir -p ${SRC_DIR}/gogoproto
|
|
|
|
# Clone prometheus
|
|
echo "Grabbing Prometheus protobuf files"
|
|
git clone --filter=blob:none --sparse https://github.com/prometheus/prometheus.git
|
|
cd prometheus
|
|
git checkout ${PROM_VERSION}
|
|
git sparse-checkout set prompb
|
|
cd ..
|
|
|
|
|
|
# We also need gogo.proto which is in the protobuf Repo
|
|
# Could also try to pull this locally from the install location of protobuf
|
|
# but that will be harder in a platform agnostic way.
|
|
echo "Grabbing gogo.proto"
|
|
git clone --filter=blob:none --sparse https://github.com/gogo/protobuf.git
|
|
cd protobuf
|
|
git checkout ${PROTO_VERSION}
|
|
git sparse-checkout set /gogoproto/gogo.proto
|
|
cd ..
|
|
|
|
# Move the proto files into our structure
|
|
echo "Moving proto files to ${SRC_DIR}"
|
|
cp prometheus/prompb/remote.proto prometheus/prompb/types.proto ${SRC_DIR}
|
|
cp protobuf/gogoproto/gogo.proto ${SRC_DIR}/gogoproto/
|
|
|
|
|
|
# A bit of a hack, but we need to fix the imports to fit the python structure.
|
|
# using sed to find the 3 files and point them at each other using OUR structure
|
|
echo "Fixing imports"
|
|
sed -i 's/import "types.proto";/import "opentelemetry\/exporter\/prometheus_remote_write\/gen\/types.proto";/' ${SRC_DIR}/remote.proto
|
|
sed -i 's/import "gogoproto\/gogo.proto";/import "opentelemetry\/exporter\/prometheus_remote_write\/gen\/gogoproto\/gogo.proto";/' ${SRC_DIR}/remote.proto
|
|
sed -i 's/import "gogoproto\/gogo.proto";/import "opentelemetry\/exporter\/prometheus_remote_write\/gen\/gogoproto\/gogo.proto";/' ${SRC_DIR}/types.proto
|
|
|
|
|
|
# Cleanup the repos
|
|
echo "Removing clones..."
|
|
rm -rf protobuf prometheus
|
|
|
|
# Used libprotoc 26
|
|
echo "Compiling proto files to Python"
|
|
protoc -I . --python_out=../src ${SRC_DIR}/gogoproto/gogo.proto ${SRC_DIR}/remote.proto ${SRC_DIR}/types.proto
|
|
|
|
echo "Running formatting on the generated files"
|
|
../../../scripts/eachdist.py format --path $PWD/..
|