|  | @@ -1,26 +1,30 @@
 | 
	
		
			
				|  |  |  #!/bin/bash
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -if [ $# -eq 0 ]; then
 | 
	
		
			
				|  |  | +if [ $# -ne 2 ]; then
 | 
	
		
			
				|  |  |    cat <<EOF
 | 
	
		
			
				|  |  | -Usage: $0 <VERSION_NUMBER>
 | 
	
		
			
				|  |  | +Usage: $0 <TARGET> <VERSION_NUMBER>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +TARGET: protoc | protoc-gen-javalite
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  Example:
 | 
	
		
			
				|  |  | -  $ $0 3.0.0-beta-4
 | 
	
		
			
				|  |  | +  $ $0 protoc 3.0.0
 | 
	
		
			
				|  |  | +  $ $0 protoc-gen-javalite 3.0.0
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -This script will download pre-built protoc binaries from maven repository
 | 
	
		
			
				|  |  | -and package them with well-known type .proto files to create .zip packages
 | 
	
		
			
				|  |  | -suitable to be included in the github release page. Each invocation will
 | 
	
		
			
				|  |  | -create 5 zip packages:
 | 
	
		
			
				|  |  | -  dist/protoc-<VERSION_NUMBER>-win32.zip
 | 
	
		
			
				|  |  | -  dist/protoc-<VERSION_NUMBER>-osx-x86_32.zip
 | 
	
		
			
				|  |  | -  dist/protoc-<VERSION_NUMBER>-osx-x86_64.zip
 | 
	
		
			
				|  |  | -  dist/protoc-<VERSION_NUMBER>-linux-x86_32.zip
 | 
	
		
			
				|  |  | -  dist/protoc-<VERSION_NUMBER>-linux-x86_64.zip
 | 
	
		
			
				|  |  | +This script will download pre-built protoc or protoc plugin binaries from maven
 | 
	
		
			
				|  |  | +repository and create .zip packages suitable to be included in the github
 | 
	
		
			
				|  |  | +release page. If the target is protoc, well-known type .proto files will also be
 | 
	
		
			
				|  |  | +included. Each invocation will create 5 zip packages:
 | 
	
		
			
				|  |  | +  dist/<TARGET>-<VERSION_NUMBER>-win32.zip
 | 
	
		
			
				|  |  | +  dist/<TARGET>-<VERSION_NUMBER>-osx-x86_32.zip
 | 
	
		
			
				|  |  | +  dist/<TARGET>-<VERSION_NUMBER>-osx-x86_64.zip
 | 
	
		
			
				|  |  | +  dist/<TARGET>-<VERSION_NUMBER>-linux-x86_32.zip
 | 
	
		
			
				|  |  | +  dist/<TARGET>-<VERSION_NUMBER>-linux-x86_64.zip
 | 
	
		
			
				|  |  |  EOF
 | 
	
		
			
				|  |  |    exit 1
 | 
	
		
			
				|  |  |  fi
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -VERSION_NUMBER=$1
 | 
	
		
			
				|  |  | +TARGET=$1
 | 
	
		
			
				|  |  | +VERSION_NUMBER=$2
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  # <zip file name> <binary file name> pairs.
 | 
	
		
			
				|  |  |  declare -a FILE_NAMES=( \
 | 
	
	
		
			
				|  | @@ -79,16 +83,20 @@ mkdir -p ${DIR}/bin
 | 
	
		
			
				|  |  |  for((i=0;i<${#FILE_NAMES[@]};i+=2));do
 | 
	
		
			
				|  |  |    ZIP_NAME=${FILE_NAMES[$i]}
 | 
	
		
			
				|  |  |    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 ${DIR}/bin/protoc &> /dev/null; then
 | 
	
		
			
				|  |  | +  BINARY_URL=http://repo1.maven.org/maven2/com/google/protobuf/$TARGET/${VERSION_NUMBER}/$TARGET-${VERSION_NUMBER}-${BINARY_NAME}
 | 
	
		
			
				|  |  | +  if ! wget ${BINARY_URL} -O ${DIR}/bin/$TARGET &> /dev/null; then
 | 
	
		
			
				|  |  |      echo "[ERROR] Failed to download ${BINARY_URL}" >&2
 | 
	
		
			
				|  |  | -    echo "[ERROR] Skipped protoc-${VERSION_NAME}-${ZIP_NAME}" >&2
 | 
	
		
			
				|  |  | +    echo "[ERROR] Skipped $TARGET-${VERSION_NAME}-${ZIP_NAME}" >&2
 | 
	
		
			
				|  |  |      continue
 | 
	
		
			
				|  |  |    fi
 | 
	
		
			
				|  |  | -  TARGET_ZIP_FILE=`pwd`/dist/protoc-${VERSION_NUMBER}-${ZIP_NAME}
 | 
	
		
			
				|  |  | +  TARGET_ZIP_FILE=`pwd`/dist/$TARGET-${VERSION_NUMBER}-${ZIP_NAME}
 | 
	
		
			
				|  |  |    pushd $DIR &> /dev/null
 | 
	
		
			
				|  |  | -  chmod +x bin/protoc
 | 
	
		
			
				|  |  | -  zip -r ${TARGET_ZIP_FILE} include bin readme.txt &> /dev/null
 | 
	
		
			
				|  |  | +  chmod +x bin/$TARGET
 | 
	
		
			
				|  |  | +  if [ "$TARGET" = "protoc" ]; then
 | 
	
		
			
				|  |  | +    zip -r ${TARGET_ZIP_FILE} include bin readme.txt &> /dev/null
 | 
	
		
			
				|  |  | +  else
 | 
	
		
			
				|  |  | +    zip -r ${TARGET_ZIP_FILE} bin &> /dev/null
 | 
	
		
			
				|  |  | +  fi
 | 
	
		
			
				|  |  |    popd &> /dev/null
 | 
	
		
			
				|  |  |    echo "[INFO] Successfully created ${TARGET_ZIP_FILE}"
 | 
	
		
			
				|  |  |  done
 |