77 lines
1.9 KiB
Bash
77 lines
1.9 KiB
Bash
#!/bin/bash
|
|
# Copyright 2021 Cloud Native Foundation.
|
|
# Licensed under the Apache 2.0 license.
|
|
# See LICENSE file in the project root for full license information.
|
|
|
|
set -e
|
|
PROTOBUF_VERSION=22.0
|
|
|
|
# Generates the classes for the protobuf event format
|
|
|
|
case "$OSTYPE" in
|
|
linux*)
|
|
PROTOBUF_PLATFORM=linux-x86_64
|
|
PROTOC=tmp/bin/protoc
|
|
;;
|
|
win* | msys* | cygwin*)
|
|
PROTOBUF_PLATFORM=win64
|
|
PROTOC=tmp/bin/protoc.exe
|
|
;;
|
|
darwin*)
|
|
PROTOBUF_PLATFORM=osx-x86_64
|
|
PROTOC=tmp/bin/protoc
|
|
;;
|
|
*)
|
|
echo "Unknown OSTYPE: $OSTYPE"
|
|
exit 1
|
|
esac
|
|
|
|
# Clean up previous generation results
|
|
rm -f src/CloudNative.CloudEvents.Protobuf/*.g.cs
|
|
rm -f test/CloudNative.CloudEvents.UnitTests/Protobuf/*.g.cs
|
|
|
|
rm -rf tmp
|
|
mkdir tmp
|
|
cd tmp
|
|
|
|
echo "- Downloading protobuf@$PROTOBUF_VERSION"
|
|
curl -sSL \
|
|
https://github.com/protocolbuffers/protobuf/releases/download/v$PROTOBUF_VERSION/protoc-$PROTOBUF_VERSION-$PROTOBUF_PLATFORM.zip \
|
|
--output protobuf.zip
|
|
unzip -q protobuf.zip
|
|
|
|
echo "- Downloading schema"
|
|
# TODO: Use the 1.0.2 branch when it exists.
|
|
mkdir cloudevents
|
|
curl -sSL https://raw.githubusercontent.com/cloudevents/spec/main/cloudevents/formats/cloudevents.proto -o cloudevents/cloudevents.proto
|
|
|
|
cd ..
|
|
|
|
# Schema proto
|
|
$PROTOC \
|
|
-I tmp/include \
|
|
-I tmp/cloudevents \
|
|
--csharp_out=src/CloudNative.CloudEvents.Protobuf \
|
|
--csharp_opt=file_extension=.g.cs \
|
|
tmp/cloudevents/cloudevents.proto
|
|
|
|
# Test protos
|
|
$PROTOC \
|
|
-I tmp/include \
|
|
-I test/CloudNative.CloudEvents.UnitTests/Protobuf \
|
|
--csharp_out=test/CloudNative.CloudEvents.UnitTests/Protobuf \
|
|
--csharp_opt=file_extension=.g.cs \
|
|
test/CloudNative.CloudEvents.UnitTests/Protobuf/*.proto
|
|
|
|
# Conformance test protos
|
|
$PROTOC \
|
|
-I tmp/include \
|
|
-I tmp/cloudevents \
|
|
-I conformance/format/protobuf \
|
|
--csharp_out=test/CloudNative.CloudEvents.UnitTests/Protobuf \
|
|
--csharp_opt=file_extension=.g.cs \
|
|
conformance/format/protobuf/*.proto
|
|
|
|
echo "Generated code."
|
|
rm -rf tmp
|