#!/bin/bash
# -----------------------------------------------------------------------------
# Starts or interacts with mininet in a remote screen session.
# -----------------------------------------------------------------------------

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

export MAX_WAIT=${ONOS_MN_TIMEOUT:-90}

cmd="$1" && shift
log="screenlog.0"
remote="$ONOS_USER@$OCN"
screenversion=$(ssh $remote screen -v | sed -n -e 's/^Screen version \([0-9]*\.[0-9]*\).*$/\1/p')
# note: Screen version check for >4.04 may be inaccurate - The only sure thing is that v4.01
#       requires logname to NOT be given while in v4.05 it is optional (as long as -L is the
#       last parameter on the command line).
[[ $screenversion > "4.04" ]] && screenlog=$log
mininet="ssh -t -t $remote screen -L $screenlog -S mininet"

case $cmd in
send)
    $mininet -X "stuff \"$@\\n\"" 2>/dev/null
    ;;

sendAndExpect)
    cmd=""
    for a in $*; do shift; if [ "$a" = "--expect" ]; then break; fi; cmd="$cmd $a"; done
    $mininet -X "stuff \"$cmd\\n\"" 2>/dev/null
    onos-mininet expect "$@"
    ;;

wait)
    ssh $remote "
        let count=0
        sleep 1 && while test ! -f $log; do if test \$count -ge $MAX_WAIT; then exit 1; fi; sleep 1; let count=count+1; done
        while ! (tail -n1 $log | egrep -q '^[ ]*[0]*mininet>'); do if [ \$count -ge $MAX_WAIT ]; then exit 1; fi; sleep 1; done
        sleep ${1-:1}
    "
    ;;

expect)
    aux=/tmp/mininet.$$.log
    ssh $remote "
        sleep 1
        if [ ! -f $log ]; then exit 1; fi;
        let count=0
        while ! (tail -n1 $log | egrep -q '^[ ]*[0]*mininet>'); do if test \$count -ge $MAX_WAIT; then exit 1; fi; sleep 1; let count=count+1; done
        tac $log | awk '{ print \$0; } /^[ ]*[0]*mininet>/ { if (on) { exit 0; } on=1; }' | tac > $aux
        cat $aux
        set -x
        egrep \"$@\" $aux
    "
    ;;

attach)
    $mininet -x
    ;;

start)
    ssh $remote "rm -f $log; echo logfile flush 1 > ~/.screenrc"
    (
    $mininet "$@"
    scp $remote:$log /tmp/mininet.log
    ssh $remote rm -f $log
    ) &
    ;;

stop)
    $mininet -X "stuff \"^C\\n\"" 2>/dev/null && \
        $mininet -X "stuff \"^C\\n\"" 2>/dev/null && \
        $mininet -X "stuff \"exit\\n\"" 2>/dev/null
    ssh -t -t $remote sudo mn -c

    ;;
cleanup)
    ssh -t -t $remote sudo mn -c
    ssh -t -t $remote "screen -list | grep mininet | cut -d. -f1 | tr -d '\t' | xargs kill -9; screen -wipe; exit 0"
    ;;
esac
