#!/bin/sh

### BEGIN INIT INFO
# Provides:          postgres
# Required-Start:    $local_fs $remote_fs $network $syslog $named
# Required-Stop:     $local_fs $remote_fs $network $syslog $named
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the postgres service
# Description:       starts the postgres service
### END INIT INFO

# Copyright 2020 Logic and Optimization Group, Universitat de Lleida. All Rights Reserved.

PATH=/opt/conda/bin:/opt/conda/condabin:/opt/conda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
DAEMON=/opt/conda/bin/pg_ctl
NAME=postgresql
DESC=postgresql

test -x $DAEMON || exit 0
[ -f /opt/serv_env_vars ] && . /opt/serv_env_vars

. /lib/init/vars.sh
. /lib/lsb/init-functions

start_postgresql() {
    su -c "pg_ctl start -D ${QUEUE_DB_DIR} -l /var/log/postgresql/log" postgres \
        || return 2

    return 0
}

stop_postgresql() {
    su -c "pg_ctl stop -D ${QUEUE_DB_DIR}" postgres || return 2

    return 0
}

reload_postgresql() {
    su -c "pg_ctl reload -D ${QUEUE_DB_DIR}" postgres || return 2

    return 0
}

restart_postgresql() {
    su -c "pg_ctl restart -D ${QUEUE_DB_DIR}" postgres || return 2

    return 0
}

WHAT=$1
shift
case "$WHAT" in
    start)
        log_daemon_msg "Starting $DESC" "$NAME"
        start_postgresql
        case "$?" in
            0|1) log_end_msg 0 ;;
            2)   log_end_msg 1 ;;
        esac
    ;;

    stop)
        log_daemon_msg "Stopping $DESC" "$NAME"
        stop_postgresql
        case "$?" in
            0|1) log_end_msg 0 ;;
            2)   log_end_msg 1 ;;
        esac
    ;;

    status)
        status_of_proc -p "${QUEUE_DB_DIR}/postmaster.pid" "$DAEMON" "$NAME" && exit 0 || exit $?
    ;;

    reload)
        log_daemon_msg "Reloading $DESC" "$NAME"
        reload_postgresql
        case "$?" in
            0|1) log_end_msg 0 ;;
            2)   log_end_msg 1 ;;
        esac
    ;;

    restart)
        log_daemon_msg "Restarting $DESC" "$NAME"
        restart_postgresql
        case "$?" in
            0|1) log_end_msg 0 ;;
            2)   log_end_msg 1 ;;
        esac
    ;;

    *)
      echo "Usage: $NAME {start|stop|status|reload|restart}" >&2
      exit 3
    ;;
esac