#!/bin/bash
# --------------------------------------------------------
# Creates a tempdir for release and checks out the code
# --------------------------------------------------------

set -eu -o pipefail

GERRIT_USER=${GERRIT_USER:-$USER}
BRANCH=${2:-master}
COMMAND=${3:--i}

export ONOS_VERSION=${1:-$ONOS_VERSION}
if [ -z "$ONOS_VERSION" ]; then
  echo "USAGE: onos-prepare-release <version number>"
  echo "       Alternatively, ONOS_VERSION must be set"
  exit -1
fi

DIR=$(mktemp -d /tmp/onos-release.XXXXX) &&
  echo "Created tempdir for release: $DIR" ||
  { echo "Failed to create temp file"; exit 1; }

cd $DIR
git init
git remote add origin ssh://$GERRIT_USER@gerrit.onosproject.org:29418/onos.git
git fetch origin
git checkout $BRANCH

# Check existance of version
git tag -l | grep -q "$ONOS_VERSION\$" &&
  { echo "ERROR: Version already exists"; exit -1; }

export ONOS_ROOT=$DIR
# This is a hack to remove symlinks from the ONOS_ROOT path. To be removed when
# the protobuf buck rules can handle symlinks
ONOS_ROOT=$(pushd $ONOS_ROOT >/dev/null && pwd -P && popd >/dev/null)
. $ONOS_ROOT/tools/build/envDefaults

# cause any accidental invocation of buck to fail
ln -s /tmp/no/such/directory $DIR/buck-out

exec bash $COMMAND

# TODO on exit, print "leaving directory"
