#!/bin/bash
#
# arangod        Startup script for the ArangoDB Server
#
# chkconfig: - 85 15
# description: ArangoDB Server
# processname: arangod
# config: /etc/arango.conf

# Source function library.
. /etc/rc.d/init.d/functions

# Path to the server binary
ARANGO_BIN=/usr/sbin/arangod
test -x $ARANGO_BIN || exit 5

ARANGO_SYSCONFIG=/etc/arangodb/arangod.conf
test -r $ARANGO_SYSCONFIG || exit 6

pidfile=/var/run/arangodb/arangod.pid

RETVAL=0



start() {
  echo -n $"Starting $ARANGO_BIN: "

  ARANGO_PIDDIR=`dirname $pidfile`
  test -d $ARANGO_PIDDIR || (mkdir $ARANGO_PIDDIR && chown arangodb:arangodb $ARANGO_PIDDIR)

  if test -d /var/log/arangodb;  then
    chown -R arangodb:arangodb /var/log/arangodb
  fi

  if test -d /var/lib/arangodb;  then
    chown -R arangodb:arangodb /var/lib/arangodb
  fi

  if test -d /var/lib/arangodb-apps;  then
    chown -R arangodb:arangodb /var/lib/arangodb-apps
  fi

  if [ "$1" = "--upgrade" ];  then
    $ARANGO_BIN -c $ARANGO_SYSCONFIG --uid arangodb --gid arangodb $@
  else
    $ARANGO_BIN -c $ARANGO_SYSCONFIG --uid arangodb --gid arangodb --pid-file "$pidfile" --temp-path "/var/tmp/arangod" --supervisor $@
  fi

  RETVAL=$?
  echo

  return $RETVAL
}



stop() {
  echo -n $"Stopping $ARANGO_BIN: "
  killproc -p "${pidfile}" -d 10 $ARANGO_BIN

  RETVAL=$?
  echo
}


# See how we were called.
case "$1" in
  start)
    start
    ;;

  stop)
    stop
    ;;

  status)
    status -p ${pidfile} $ARANGO_BIN
    RETVAL=$?
    ;;

  restart)
    stop
    start
    ;;

  upgrade)
    echo $"Upgrading ArangoDB database files"

    start --upgrade
    ;;

  *)
    echo $"Usage: $0 {start|stop|restart|status|help|upgrade}"
    exit 1
esac

exit $RETVAL
