#!/bin/bash

DEFAULT_TAG=${TAG:-$(date +v%Y.%m.%d.01)}
NO_BUCKD=1

DOWNLOAD_BASE="http://onlab.vicci.org/onos/third-party"
BUCK_ZIP="buck-$DEFAULT_TAG.zip"
ZIP_STAGE="buck-bin"

rm -rf $ZIP_STAGE

set -e
set -x

# build plugins

pushd buck
onos-buck build buck
popd #buck

pushd onos
onos-buck build //tools/build/buck-plugin:onos
popd #onos

pushd onos-yang-tools/compiler
mvn clean package
popd #onos-yang-tools

# assemble zip

mkdir -p buck-bin/plugins

cp buck/buck-out/gen/programs/buck.pex $ZIP_STAGE/buck
cp onos/buck-out/gen/tools/build/buck-plugin/onos.jar $ZIP_STAGE/plugins/onos.jar
cp onos-yang-tools/compiler/plugin/buck/target/onos-yang-compiler-buck-plugin-*.jar $ZIP_STAGE/plugins/yang.jar

BUCK_VERSION=$(buck/buck-out/gen/programs/buck.pex -V)
echo $BUCK_VERSION > $ZIP_STAGE/.buck_version

chmod 555 $ZIP_STAGE/buck
chmod 444 $ZIP_STAGE/.buck_version

pushd $ZIP_STAGE
zip -r ../$BUCK_ZIP buck .buck_version plugins
popd #$ZIP_STAGE

if [ "$1" != "--dry-run" ]; then
    # publish zip
    #FIXME check for s3 credentials
    uploadToS3.py --dest third-party/ $BUCK_ZIP
fi

# update version in onos-buck
URL="$DOWNLOAD_BASE/$BUCK_ZIP"
SHA=$(shasum $BUCK_ZIP | cut -d' ' -f1)

sed -i "" -E "s#BUCK_URL=.*#BUCK_URL=\"$URL\"#" onos/tools/build/onos-buck
sed -i "" -E "s#BUCK_SHA=.*#BUCK_SHA=\"$SHA\"#" onos/tools/build/onos-buck

set +x
echo
echo "Commit and push change to onos-buck on the onos directory."
