#!/bin/bash

set -e

touch /var/log/mattermost.stdout
touch /var/log/mattermost.stderr
chown mattermost /var/log/mattermost.{stdout,stderr}

function start() {
  mkdir -p /sys/fs/cgroup/memory/rc.d/mattermost
  echo  $BASHPID >> /sys/fs/cgroup/memory/rc.d/mattermost/tasks
  printf "Starting mattermost...\n"
  if ! pgrep postgres >/dev/null ; then
    printf "Postgres not running! Exiting.\n"
  fi
  cd /opt/mattermost
  su mattermost -c '/opt/mattermost/bin/mattermost 1>/var/log/mattermost.stdout 2>/var/log/mattermost.stderr & exit'
}

function stop() {
  if [[ "$(cat /sys/fs/cgroup/memory/rc.d/mattermost/tasks )" != "" ]] ; then
    kill $(cat /sys/fs/cgroup/memory/rc.d/mattermost/tasks )
  fi
  sleep 1
  if [[ "$(cat /sys/fs/cgroup/memory/rc.d/mattermost/tasks )" != "" ]] ; then
    kill -9 $(cat /sys/fs/cgroup/memory/rc.d/mattermost/tasks )
  fi
}

case "$1" in
  start)
    printf "case up\n"
    start
    exit "$?"
    ;;
  stop)
    printf "case down\n"
    stop
    exit "$?"
    ;;
  status)
    printf "Mattermost pids: %s\n" $(cat /sys/fs/cgroup/memory/rc.d/mattermost/tasks)
    exit 0
    ;;
  restart)
    stop
    start
    ;;
  *) printf "usage: {start,stop,restart,status}\n"
esac
