#!/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    \
  linux_aarch64 linux-aaarch_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
