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

set -e

BUCK_URL="http://onlab.vicci.org/onos/third-party/buck.zip"
BUCK_SHA="26652b4f49849517fd19abd782bd8cd6f28e11a9"
REQUIRED_VERSION="buck version 7eb2adae2aa1e4d38ce2f5b9f907878687bf19cf"

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

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

if [ -n "$FORCE_UPDATE" ] || [ ! -f "buck" ] || [ "$REQUIRED_VERSION" != "$(cat .buck_version)" ]; then
    echo "Downloading Buck..."
    rm -fr .buck_version buck buck.zip plugins
    curl -o ./buck.zip -L $BUCK_URL
    if [ -n "$(which shasum)" ]; then
        SHA=$(shasum ./buck.zip | cut -d' ' -f1)
        [ "$SHA" != "$BUCK_SHA" ] &&
           echo "ERROR: Downloaded SHA ($SHA) does not match expected SHA ($BUCK_SHA)" &&
           exit 1
    else
        echo "SHA cannot be verified"
    fi
    unzip buck.zip
    rm buck.zip
    rm -rf $ONOS_ROOT/buck-out
    printf "Successfully downloaded Buck to $ONOS_ROOT/bin/buck\n\n"
fi
popd > /dev/null

BUCK=$ONOS_ROOT/bin/buck

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