Protocol Buffers - Google's data interchange format (grpc依赖)
https://developers.google.com/protocol-buffers/
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.
51 lines
1.2 KiB
51 lines
1.2 KiB
#!/bin/bash |
|
|
|
if [ $# -ne 1 ]; then |
|
cat <<EOF |
|
Usage: $0 <VERSION_NUMBER> |
|
|
|
Example: |
|
$ $0 3.0.0 |
|
|
|
This script will download pre-built protoc binaries from maven repository and |
|
create the Google.Protobuf.Tools package. Well-known type .proto files will also |
|
be included. |
|
EOF |
|
exit 1 |
|
fi |
|
|
|
VERSION_NUMBER=$1 |
|
# <directory name> <binary file name> pairs. |
|
declare -a FILE_NAMES=( \ |
|
windows_x86 windows-x86_32.exe \ |
|
windows_x64 windows-x86_64.exe \ |
|
macosx_x64 osx-x86_64.exe \ |
|
linux_x86 linux-x86_32.exe \ |
|
linux_x64 linux-x86_64.exe \ |
|
) |
|
|
|
set -e |
|
|
|
mkdir -p protoc |
|
# Create a zip file for each binary. |
|
for((i=0;i<${#FILE_NAMES[@]};i+=2));do |
|
DIR_NAME=${FILE_NAMES[$i]} |
|
mkdir -p protoc/$DIR_NAME |
|
|
|
if [ ${DIR_NAME:0:3} = "win" ]; then |
|
TARGET_BINARY="protoc.exe" |
|
else |
|
TARGET_BINARY="protoc" |
|
fi |
|
|
|
BINARY_NAME=${FILE_NAMES[$(($i+1))]} |
|
BINARY_URL=http://repo1.maven.org/maven2/com/google/protobuf/protoc/${VERSION_NUMBER}/protoc-${VERSION_NUMBER}-${BINARY_NAME} |
|
|
|
if ! wget ${BINARY_URL} -O protoc/$DIR_NAME/$TARGET_BINARY &> /dev/null; then |
|
echo "[ERROR] Failed to download ${BINARY_URL}" >&2 |
|
echo "[ERROR] Skipped $protoc-${VERSION_NAME}-${DIR_NAME}" >&2 |
|
continue |
|
fi |
|
done |
|
|
|
nuget pack Google.Protobuf.Tools.nuspec
|
|
|