#!/bin/bash

usage() {
    cat <<EOF
Telemetry Server discovery tool

Usage: telemetry-discovery.sh <OPTIONS>

GENERAL OPTIONS (OPTIONS):
-register           Register telemetry server to edirectory
-discover           Discover telemetry server from edirectory
-deregister         Deregisters telemetry server from the current server
EOF
}

discover() {
    /opt/novell/telemetry/bin/edir-register-tool -search
    exit $?
}

registerTelemetry() {
    /opt/novell/telemetry/bin/edir-register-tool -register -u $1 -c $2 >/dev/null
    if [ $? -eq 0 ]; then
        echo "Registration complted successfully"
        exit 0
    else
        echo "Registration failed"
        exit 1
    fi
}

deregisterTelemetry() {
    /opt/novell/telemetry/bin/edir-register-tool -deregister -u $1 -c $2 >/dev/null
    if [ $? -eq 0 ]; then
        echo "De-registration complted successfully"
        exit 0
    else
        echo "De-registration failed"
        exit 1
    fi
}

optInTelemetry() {
    if [ "$4" != "" ]; then
        /opt/novell/telemetry/bin/edir-register-tool -optin -u $1 -c $2 -v $3 -s $4 >/dev/null
    else
        /opt/novell/telemetry/bin/edir-register-tool -optin -u $1 -c $2 -v $3 >/dev/null
    fi
    if [ $? -eq 0 ]; then
        echo "Opt in change was successful"
        exit 0
    else
        echo "Opt in change failed"
        exit 1
    fi
}

if [ "$1" == "" ]; then
    usage
    exit 1
fi

admin=""
context=""
optin=""
server=""
if [ "$1" == "-register" ]; then
    shift
    while [ "$1" != "" ]; do
        case "$1" in
        -u)
            shift
            admin=$1
            shift
            ;;
        -c)
            shift
            context=$1
            shift
            ;;
        *)
            usage
            exit 1
            ;;
        esac
    done

    registerTelemetry $admin $context

elif
    [ "$1" == "-deregister" ]; then
    shift
    while [ "$1" != "" ]; do
        case "$1" in
        -u)
            shift
            admin=$1
            shift
            ;;
        -c)
            shift
            context=$1
            shift
            ;;
        *)
            usage
            exit 1
            ;;
        esac
    done
    deregisterTelemetry $admin $context

elif
    [ "$1" == "-discover" ]
then
    discover
    exit 0

elif
    [ "$1" == "-optin" ]
then
    shift
    while [ "$1" != "" ]; do
        case "$1" in
        -u)
            shift
            admin=$1
            shift
            ;;
        -c)
            shift
            context=$1
            shift
            ;;
        -v)
            shift
            optin=$1
            shift
            ;;
        -s)
            shift
            server=$1
            shift
            ;;
        *)
            usage
            exit 1
            ;;
        esac
    done
    optInTelemetry $admin $context $optin $server
else
    usage
    exit 1

fi
