#!/bin/bash
# -----------------------------------------------------------------------------
# Runs the custom version of Buck required by ONOS.
# -----------------------------------------------------------------------------

set -e

BUCK_URL="http://onlab.vicci.org/onos/third-party/buck-v2017.03.10.01.zip"
BUCK_SHA="baa7bae077ef0e65b371525fd525a5763fef41c4"
REQUIRED_VERSION="buck version c4e714c9c0c774cbb674c2fde0a4419824f0cfdb"

[  "-U" = "$1" ] && shift && FORCE_UPDATE=True

ROOT_DIR=${ONOS_ROOT:-"$( cd "$( dirname "${BASH_SOURCE[0]}" )/../.." && pwd )"}

mkdir -p $ROOT_DIR/bin
pushd $ROOT_DIR/bin > /dev/null

if [ -n "$FORCE_UPDATE" ] || [ ! -f "buck" ] || [ "$REQUIRED_VERSION" != "$(cat .buck_version)" ]; then
    echo "Updating Buck..."
    rm -fr .buck_version buck plugins
    mkdir -p cache
    BUCK_FILE=$(basename $BUCK_URL)
    # Check the local cache; download to cache if required
    [ -f "cache/$BUCK_FILE" ] || curl -o cache/$BUCK_FILE -L $BUCK_URL
    if [ -n "$(which shasum)" ]; then
        SHA=$(shasum cache/$BUCK_FILE | cut -d' ' -f1)
        [ "$SHA" != "$BUCK_SHA" ] &&
           echo "ERROR: Downloaded SHA ($SHA) does not match expected SHA ($BUCK_SHA)" &&
           rm -f cache/$BUCK_FILE && exit 1
    else
        echo "SHA cannot be verified"
    fi
    unzip cache/$BUCK_FILE
    # Kill buckd
    ps -ef | egrep buckd | grep -v egrep | cut -c7-11 | xargs kill 2>/dev/null || :
    rm -rf $ROOT_DIR/buck-out
    printf "Successfully updated Buck in $ROOT_DIR/bin/buck to $BUCK_FILE\n\n"
fi
popd > /dev/null

BUCK=$ROOT_DIR/bin/buck

if [ "${ONOS_NO_BUCKD:-1}" == "1" ]; then
  export NO_BUCKD=1
fi

# Finally, run the Buck command...
$BUCK "$@"
