#!/bin/bash

HOST='127.0.0.1'
PORT=5000

usage() {
  echo "Usage: $0 version|pid|status|start|stop|restart [-h <host>] [-p <port>]" >&2; exit 1
}

version() {
   python3 -c "from nest_server import __version__; print(__version__)"
}

pid() {
  pgrep -f 'uwsgi --http-socket $HOST:$PORT --module nest_server.main:app'
}

status() {
  export pid=`nest-server pid`
  if [ $pid ]; then
    echo 'NEST Server is running.'
  else
    echo 'NEST Server is not running.'
  fi
}

start() {
  export pid=`nest-server pid`
  if [ $pid ]; then
    echo 'NEST Server is already running.'
  else
    uwsgi --http-socket $HOST:$PORT --module nest_server.main:app
  fi
}

stop() {
  export pid=`nest-server pid`
  if [ $pid ]; then
    kill $pid
    echo 'NEST Server has stopped.'
  fi
}

CMD=$1; shift
while getopts "h:p:" opt; do
    case $opt in
        h) HOST=$OPTARG ;;
        p) PORT=$OPTARG ;;
    esac
done

case "$CMD" in
  pid) pid ;;
  status)  status ;;
  start)   start ;;
  stop)    stop ;;
  restart) stop; start ;;
  version) version ;;
  *) usage ;;
esac
