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

set -e
set -x

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; }

# Copy local buck configuration to new tree
cp $ONOS_ROOT/.buckconfig.local $DIR/

export ONOS_ROOT=$DIR
. $ONOS_ROOT/tools/build/envDefaults
exec bash $COMMAND

# TODO on exit, print "leaving directory"
