#!/bin/bash

NAME='onapp_mq_tracer'
SCRIPT=/onapp/utilities/mq-tracer/onapp_mq_tracer
LOGFILE=/onapp/utilities/mq-tracer/trace.log

remove_logfile(){
    test -f $LOGFILE
    if [ $? -eq 0 ]; then
        rm $LOGFILE
    fi
}

start_process(){
    remove_logfile
    rabbitmqctl trace_on
    nohup $SCRIPT 2&>/dev/null &
}

start(){
    check_service $NAME
    if [ $? -eq 0 ]; then
        echo "$NAME is already running"
        exit 1
    else
        echo "Starting $NAME"
        start_process
        sleep 1
        exit 0
    fi
}

stop_process(){
    pkill -15 -f $NAME
    rabbitmqctl trace_off
}

stop(){
    check_service $NAME
    if [ $? -eq 0 ]; then
        echo "Stopping $NAME"
        stop_process
        exit 0
    else
        echo "$NAME is already stopped"
        exit 1
    fi
}

restart(){
    check_service $NAME
    if [ $? -eq 0 ]; then
        echo "Stopping $NAME"
        stop_process
        echo "Starting $NAME"
        start_process
    else
        echo "$NAME is already stopped"
        echo "Starting $NAME"
        start_process
    fi
    exit 0
}

status(){
    check_service $NAME
    if [ $? -eq 0 ]; then
        echo -e "${NAME} is running"
        exit 0
    else
        echo -e "${NAME} is stopped"
        exit 1
    fi
}

usage(){
    $SCRIPT usage
}

log(){
    tail -f $LOGFILE
}

check_service(){
    pids=`ps ax | grep $1 | grep -v $0 | grep -v grep` > /dev/null
    if [ "x$pids" = "x" ]; then
        return 1
    else
        return 0
    fi
}

case "$1" in
  status)
        status
        ;;
  start)
        start
        ;;
  log)
        log
        ;;
  stop)
        stop
        ;;
  restart)
        restart
        ;;
  *)
        usage
        ;;
esac
