#!/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 -a $BUCK_TAR -nt $ONOS_TAR ]; then
    rm -f $ONOS_TAR >/dev/null; ln -s $BUCK_TAR $ONOS_TAR
fi

ls -l $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_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.5
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
