#!/bin/bash

RUN_DIR=/var/vcap/sys/run/sslproxy
LOG_DIR=/var/vcap/sys/log/sslproxy
JOB_DIR=/var/vcap/jobs/sslproxy
CONF_DIR=$JOB_DIR/config
CERTS_DIR=$CONF_DIR/ssl
PIDFILE=$RUN_DIR/nginx.pid

case $1 in

  start)
    mkdir -p $RUN_DIR $LOG_DIR $CERTS_DIR

    echo $$ > $PIDFILE

    # if the properties contain sslproxy.ssl.key & sslproxy.ssl.cert
    # the two files below will contain key & cert, then copy them to
    # the certificates dir
    if [ -s $CONF_DIR/sslproxy.key -a -s $CONF_DIR/sslproxy.pem ]; then
      cp $CONF_DIR/sslproxy.key $CERTS_DIR
      cp $CONF_DIR/sslproxy.pem $CERTS_DIR
    # otherwise, if the key or cert doesn't exist create new ones
    elif [ ! -f $CERTS_DIR/sslproxy.key -o ! -f $CERTS_DIR/sslproxy.pem ]; then
      openssl req -nodes -new -newkey rsa:1024 -out $CERTS_DIR/sslproxy.csr \
        -keyout $CERTS_DIR/sslproxy.key -subj '/O=Bosh/CN=*'
      openssl x509 -req -days 3650 -in $CERTS_DIR/sslproxy.csr \
        -signkey $CERTS_DIR/sslproxy.key -out $CERTS_DIR/sslproxy.pem
    fi

    exec /var/vcap/packages/nginx/sbin/nginx -c $JOB_DIR/config/nginx.conf \
      >>$LOG_DIR/nginx.stdout.log 2>>$LOG_DIR/nginx.stderr.log
    ;;

  stop)
    PID=$(head -1 $PIDFILE)
    kill $PID
    while [ -e /proc/$PID ]; do sleep 0.1; done
    rm -f $PIDFILE
    ;;

  *)
    echo "Usage: nginx_ctl {start|stop}" ;;
esac
exit 0
