#!/bin/bash
# -----------------------------------------------------------------------------
# Checks if ONOS bits are available in preparation for install.
# -----------------------------------------------------------------------------

[ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
. $ONOS_ROOT/tools/build/envDefaults

# If the BUCK-built bits are newer than the Maven-built bits, use the former.
BUCK_TAR=$ONOS_ROOT/buck-out/gen/tools/package/onos-package/onos.tar.gz
if [ -f $BUCK_TAR ] && [ $BUCK_TAR -nt $ONOS_TAR ]; then
  rm -f $ONOS_TAR >/dev/null; ln -s $BUCK_TAR $ONOS_TAR
fi

ls -lL $ONOS_TAR  && cksum $ONOS_TAR
if [ $? -ne 0 ]; then
  echo "ONOS archive is unreadable" && exit 1
fi

tar tzf ${ONOS_TAR} >/dev/null
if [ $? -ne 0 ]; then
  echo "ONOS archive is not a valid tar file" && exit 1
fi

tar tzf ${ONOS_TAR} | grep -q "onos-${ONOS_POM_VERSION}.*/VERSION"
if [ $? -ne 0 ]; then
  echo "ONOS archive does not contain the proper version file" && exit 1
fi

tar tzf ${ONOS_TAR} | grep -q apache-karaf-3.0.8
if [ $? -ne 0 ]; then
  echo "ONOS archive does not contain karaf" && exit 1
fi

tar tzf ${ONOS_TAR} | grep -q apps/org.onosproject.openflow
if [ $? -ne 0 ]; then
  echo "ONOS archive does not contain openflow app" && exit 1
fi

tar tzf ${ONOS_TAR} | grep -q onos-core-net
if [ $? -ne 0 ]; then
  echo "ONOS archive does not contain onos-core-net" && exit 1
fi
