#!/bin/bash

set -e

# inputs
BOSH_RELEASE_DIR=$PWD/bpm-release

# outputs
FINAL_RELEASE_TARBALL_DIR="${PWD}/final-release-tarball"
FINAL_RELEASE_REPO="${PWD}/final-release-repo"

VERSION=$(cat ./version/version)
if [ -z "$VERSION" ]; then
  echo "Version number not found in ./version/version"
  exit 1
fi

FINAL_RELEASE_TARBALL="${FINAL_RELEASE_TARBALL_DIR}/${RELEASE_NAME}-${VERSION}.tgz"

# This is necessary in order to copy hidden files
shopt -s dotglob
cp -r "${BOSH_RELEASE_DIR}"/* "${FINAL_RELEASE_REPO}"

{
  IFS=''
  echo "$BLOBSTORE_PRIVATE_YML" >> "$FINAL_RELEASE_REPO/config/private.yml"
}

git config --global user.email "cf-bpm+final-releaser@pivotal.io"
git config --global user.name "CF BPM"

cd "$FINAL_RELEASE_REPO"

RELEASE_YML=$PWD/releases/$RELEASE_NAME/$RELEASE_NAME-${VERSION}.yml

# be idempotent
if ! [ -e "${RELEASE_YML}" ]; then
  echo "creating final release"
  bosh -n create-release --final --version "${VERSION}"
  git add -A
  git commit -m "release v${VERSION}"
  git tag -f "v${VERSION}"
fi

bosh -n create-release --tarball "${FINAL_RELEASE_TARBALL}" "${RELEASE_YML}"
