#!/bin/bash
set -e

# Get the version from the command line
VERSION=$1
if [ -z $VERSION ]; then
    echo "Please specify a version."
    exit 1
fi

# Make sure we have a bintray API key
if [ -z $BINTRAY_API_KEY ]; then
    echo "Please set your bintray API key in the BINTRAY_API_KEY env var."
    exit 1
fi

# Get the parent directory of where this script is.
SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ] ; do SOURCE="$(readlink "$SOURCE")"; done
DIR="$( cd -P "$( dirname "$SOURCE" )/.." && pwd )"

# Change into that dir because we expect that
cd $DIR

# Zip all the files
rm -rf ./dist/pkg
mkdir -p ./dist/pkg
for FILENAME in $(find ./dist -mindepth 1 -maxdepth 1 -type f); do
    FILENAME=$(basename $FILENAME)
    EXTENSION="${FILENAME##*.}"
    PLATFORM="${FILENAME%.*}"

    if [ "${EXTENSION}" != "exe" ]; then
        EXTENSION=""
    else
        EXTENSION=".${EXTENSION}"
    fi

    CONSULNAME="consul${EXTENSION}"

    pushd ./dist

    if [ "${FILENAME}" = "ui.zip" ]; then
        cp ${FILENAME} ./pkg/${VERSION}_web_ui.zip
    else
        if [ "${EXTENSION}" = "" ]; then
            chmod +x ${FILENAME}
        fi

        cp ${FILENAME} ${CONSULNAME}
        zip ./pkg/${VERSION}_${PLATFORM}.zip ${CONSULNAME}
        rm ${CONSULNAME}
    fi

    popd
done

# Make the checksums
pushd ./dist/pkg
shasum -a256 * > ./${VERSION}_SHA256SUMS
popd

# Upload
for ARCHIVE in ./dist/pkg/*; do
    ARCHIVE_NAME=$(basename ${ARCHIVE})

    echo Uploading: $ARCHIVE_NAME
    curl \
        -T ${ARCHIVE} \
        -umitchellh:${BINTRAY_API_KEY} \
        "https://api.bintray.com/content/mitchellh/consul/consul/${VERSION}/${ARCHIVE_NAME}"
done

exit 0