#!/bin/bash -e
# Systemd helper script to start/stop Dataiku Fleet Manager

Usage() {
    echo >&2 "Usage: $0 (start | stop)"
    exit 1
}

if [ $# -ne 1 ]; then
    Usage
fi
case "$1" in
    start | stop) ACTION="$1";;
    *) Usage;;
esac

# Load configuration file
# Should contain the following mandatory variables:
# FM_DATADIR : FM data directory
# FM_USER : FM user account

CONFIG="$0.conf"
if [ ! -f "$CONFIG" ]; then
    echo >&2 "$0 : ERROR : Missing configuration file $CONFIG"
    exit 1
fi

FM_DATADIR=
FM_USER=
. "$CONFIG"
if [ -z "$FM_DATADIR" ]; then
    echo >&2 "$0 : ERROR : Missing mandatory parameter FM_DATADIR in $CONFIG"
    exit 1
fi
if [ -z "$FM_USER" ]; then
    echo >&2 "$0 : ERROR : Missing mandatory parameter FM_USER in $CONFIG"
    exit 1
fi

case "$ACTION" in
    start)
        echo "starting Dataiku Fleet Manager"
        if [ $EUID -eq 0 ]; then
            su - "$FM_USER" -c "$FM_DATADIR/bin/fm start"
        else
            cd
            exec /bin/bash -l -c "exec $FM_DATADIR/bin/fm start"
        fi
        ;;

    stop)
        echo "stopping Dataiku Fleet Manager"
        if [ $EUID -eq 0 ]; then
            su - "$FM_USER" -c "$FM_DATADIR/bin/fm stop"
        else
            cd
            exec /bin/bash -l -c "exec $FM_DATADIR/bin/fm stop"
        fi
        ;;
esac
