1*1b3f573fSAndroid Build Coastguard Worker#!/bin/bash 2*1b3f573fSAndroid Build Coastguard Worker 3*1b3f573fSAndroid Build Coastguard Workerif [ $# -ne 1 ]; then 4*1b3f573fSAndroid Build Coastguard Worker cat <<EOF 5*1b3f573fSAndroid Build Coastguard WorkerUsage: $0 <VERSION_NUMBER> 6*1b3f573fSAndroid Build Coastguard Worker 7*1b3f573fSAndroid Build Coastguard WorkerExample: 8*1b3f573fSAndroid Build Coastguard Worker $ $0 3.0.0 9*1b3f573fSAndroid Build Coastguard Worker 10*1b3f573fSAndroid Build Coastguard WorkerThis script will download pre-built protoc binaries from maven repository and 11*1b3f573fSAndroid Build Coastguard Workercreate the Google.Protobuf.Tools package. Well-known type .proto files will also 12*1b3f573fSAndroid Build Coastguard Workerbe included. 13*1b3f573fSAndroid Build Coastguard WorkerEOF 14*1b3f573fSAndroid Build Coastguard Worker exit 1 15*1b3f573fSAndroid Build Coastguard Workerfi 16*1b3f573fSAndroid Build Coastguard Worker 17*1b3f573fSAndroid Build Coastguard WorkerVERSION_NUMBER=$1 18*1b3f573fSAndroid Build Coastguard Worker# <directory name> <binary file name> pairs. 19*1b3f573fSAndroid Build Coastguard Workerdeclare -a FILE_NAMES=( \ 20*1b3f573fSAndroid Build Coastguard Worker windows_x86 windows-x86_32.exe \ 21*1b3f573fSAndroid Build Coastguard Worker windows_x64 windows-x86_64.exe \ 22*1b3f573fSAndroid Build Coastguard Worker macosx_x64 osx-x86_64.exe \ 23*1b3f573fSAndroid Build Coastguard Worker linux_x86 linux-x86_32.exe \ 24*1b3f573fSAndroid Build Coastguard Worker linux_x64 linux-x86_64.exe \ 25*1b3f573fSAndroid Build Coastguard Worker) 26*1b3f573fSAndroid Build Coastguard Worker 27*1b3f573fSAndroid Build Coastguard Workerset -e 28*1b3f573fSAndroid Build Coastguard Worker 29*1b3f573fSAndroid Build Coastguard Workermkdir -p protoc 30*1b3f573fSAndroid Build Coastguard Worker# Create a zip file for each binary. 31*1b3f573fSAndroid Build Coastguard Workerfor((i=0;i<${#FILE_NAMES[@]};i+=2));do 32*1b3f573fSAndroid Build Coastguard Worker DIR_NAME=${FILE_NAMES[$i]} 33*1b3f573fSAndroid Build Coastguard Worker mkdir -p protoc/$DIR_NAME 34*1b3f573fSAndroid Build Coastguard Worker 35*1b3f573fSAndroid Build Coastguard Worker if [ ${DIR_NAME:0:3} = "win" ]; then 36*1b3f573fSAndroid Build Coastguard Worker TARGET_BINARY="protoc.exe" 37*1b3f573fSAndroid Build Coastguard Worker else 38*1b3f573fSAndroid Build Coastguard Worker TARGET_BINARY="protoc" 39*1b3f573fSAndroid Build Coastguard Worker fi 40*1b3f573fSAndroid Build Coastguard Worker 41*1b3f573fSAndroid Build Coastguard Worker BINARY_NAME=${FILE_NAMES[$(($i+1))]} 42*1b3f573fSAndroid Build Coastguard Worker BINARY_URL=http://repo1.maven.org/maven2/com/google/protobuf/protoc/${VERSION_NUMBER}/protoc-${VERSION_NUMBER}-${BINARY_NAME} 43*1b3f573fSAndroid Build Coastguard Worker 44*1b3f573fSAndroid Build Coastguard Worker if ! wget ${BINARY_URL} -O protoc/$DIR_NAME/$TARGET_BINARY &> /dev/null; then 45*1b3f573fSAndroid Build Coastguard Worker echo "[ERROR] Failed to download ${BINARY_URL}" >&2 46*1b3f573fSAndroid Build Coastguard Worker echo "[ERROR] Skipped $protoc-${VERSION_NAME}-${DIR_NAME}" >&2 47*1b3f573fSAndroid Build Coastguard Worker continue 48*1b3f573fSAndroid Build Coastguard Worker fi 49*1b3f573fSAndroid Build Coastguard Workerdone 50*1b3f573fSAndroid Build Coastguard Worker 51*1b3f573fSAndroid Build Coastguard Workernuget pack Google.Protobuf.Tools.nuspec 52