#!/bin/bash

set -ex

# Change to repo root.
cd $(dirname $0)/../..

# Initialize any submodules.
git submodule update --init --recursive

# The directory with all resulting artifacts
mkdir -p artifacts

# Artifacts from all predecessor jobs get copied to this directory by kokoro
INPUT_ARTIFACTS_DIR="${KOKORO_GFILE_DIR}/github/protobuf"

# TODO(jtattermusch): remove listing the files, but for now it make it easier
# to iterate on the script.
ls -R ${INPUT_ARTIFACTS_DIR}

# ====================================
# Copy to expose all the artifacts from the predecessor jobs to the output
# TODO(jtattermusch): the directory layout of the artifact builds is pretty messy,
# so will be the output artifacts of this job.
cp -r ${INPUT_ARTIFACTS_DIR}/* artifacts

# ====================================
# Build Google.Protobuf.Tools C# nuget
# The reason it's being done in this script is that we need access to protoc binaries
# built on multiple platform (the build is performed by the "build artifact" step)
# and adding and extra chained build just for building the Google.Protobuf.Tools
# nuget seems like an overkill.
cd csharp
mkdir -p protoc/windows_x86
mkdir -p protoc/windows_x64
cp ${INPUT_ARTIFACTS_DIR}/build32/Release/protoc.exe protoc/windows_x86/protoc.exe
cp ${INPUT_ARTIFACTS_DIR}/build64/Release/protoc.exe protoc/windows_x64/protoc.exe

mkdir -p protoc/linux_x86
mkdir -p protoc/linux_x64
# Because of maven unrelated reasonse the linux protoc binaries have a dummy .exe extension.
# For the Google.Protobuf.Tools nuget, we don't want that exception, so we just remove it.
cp ${INPUT_ARTIFACTS_DIR}/protoc-artifacts/target/linux/x86_32/protoc.exe protoc/linux_x86/protoc
cp ${INPUT_ARTIFACTS_DIR}/protoc-artifacts/target/linux/x86_64/protoc.exe protoc/linux_x64/protoc

mkdir -p protoc/macosx_x64
cp ${INPUT_ARTIFACTS_DIR}/build64/src/protoc protoc/macosx_x64/protoc

# Install nuget (will also install  mono)
# TODO(jtattermusch): use "mono:5.14" docker image instead so we don't have to apt-get install
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
echo "deb https://download.mono-project.com/repo/ubuntu stable-xenial main" | sudo tee /etc/apt/sources.list.d/mono-official-stable.list
sudo apt update
sudo apt-get install -y nuget

nuget pack Google.Protobuf.Tools.nuspec

# Copy the nupkg to the output artifacts
cp Google.Protobuf.Tools.*.nupkg ../artifacts
