#!/bin/sh
### BEGIN INIT INFO
# Provides: unicorn
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts the unicorn app server
# Description: starts unicorn using start-stop-daemon
### END INIT INFO

set -e
USAGE="Usage: $0 <start|stop|restart|upgrade|rotate|force-stop>"

# app settings
USER="ubuntu"
APP_NAME="nemo_encoder_production"
APP_ROOT="/home/$USER/apps/$APP_NAME/current"
ENV="production"

# environment settings
PATH="/home/$USER/.rbenv/shims:/home/$USER/.rbenv/bin:$PATH"
CMD="/home/$USER/.rbenv/shims/unicorn_rails -c $APP_ROOT/config/unicorn.rb -E $ENV -D"
PID="$APP_ROOT/pids/unicorn.nemo.pid"
OLD_PID="$PID.oldbin"


cd $APP_ROOT || exit 1

sig () {
        test -s "$PID" && kill -$1 `cat $PID`
}

oldsig () {
        test -s $OLD_PID && kill -$1 `cat $OLD_PID`
}


case $1 in
        start)
          sig 0 && echo >&2 "Already running" && exit 0
          echo "Starting $APP_NAME"
          su - $USER -c "$CMD"
          ;;
        stop)
          echo "Stopping $APP_NAME"
          sig QUIT && exit 0
          echo >&2 "Not running"
          ;;
        force-stop)
          echo "Force stopping $APP_NAME"
          sig TERM && exit 0
          echo >&2 "Not running"
          ;;
        restart|reload|upgrade)
          sig USR2 && echo "reloaded $APP_NAME" && exit 0
          echo >&2 "Couldn't reload, starting '$CMD' instead"
          $CMD
		  ;;
        rotate)
          sig USR1 && echo rotated logs OK && exit 0
          echo >&2 "Couldn't rotate logs" && exit 1
          ;;
        *)
        echo >&2 $USAGE
        exit 1
        ;;
esac

