#!/bin/bash
# -----------------------------------------------------------------------------
# Remotely pushes bits to a remote node in preparation for install.
# -----------------------------------------------------------------------------
function _usage () {
cat << _EOF_
usage:
 $(basename $0) [node]

options:
- [node] : the target node to prime for installation

summary:
 Remotely pushes bits to a remote node in preparation for install.

 $(basename $0) is invoked as part of 'onos-install', and shouldn't be
 directly invoked for the most part.

_EOF_
}

[ $# -gt 1 ] || [ "$1" = "-h" ] && _usage && exit 0
[ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT isn't set correctly" >&2 && exit 1
set -e
set -u
. $ONOS_ROOT/tools/build/envDefaults
[ ! -f "$ONOS_TAR" ] && echo "$ONOS_TAR does not exist - run onos-package?" >&2 && exit 1

node=${1:-$OCI}
remote=$ONOS_USER@$node

locHash=$(cksum $ONOS_TAR | cut -d' ' -f1,2)
remHash=$(ssh $remote cksum $ONOS_TAR 2>/dev/null | cut -d' ' -f1,2)

if [ -n "$locHash" ] && [ "$locHash" = "$remHash" ]; then
    echo "ONOS bits $ONOS_TAR already up-to-date on $node..."
else
    scp -q $ONOS_TAR $remote:/tmp
fi
