#!/bin/bash

set -e # exit immediately if a simple command exits with a non-zero status
set -u # report the usage of uninitialized variables

# Setup env vars and folders for the webapp_ctl script
source /var/vcap/jobs/vault/helpers/ctl_setup.sh 'vault'

export PORT=${PORT:-5000}
export LANG=en_US.UTF-8
export PATH=$PATH:/var/vcap/packges/ttar/bin

inflate_certs() {
	# reconstitute certs based on ttar file
	mkdir -p ${JOB_DIR}/tls
	ttar < ${JOB_DIR}/tls/certs.ttar
}

inflate_additional_configs() {
    # reconstitute additional configurations like GCP creds file that may be necessary
    ttar < ${JOB_DIR}/config/additional_config.ttar
}

case $1 in

  start)
    pid_guard $PIDFILE $JOB_NAME
    inflate_certs
    inflate_additional_configs

    # store pid in $PIDFILE
    echo $$ > $PIDFILE

    exec vault server -config=$JOB_DIR/config/server.hcl \
         >>$LOG_DIR/$JOB_NAME.log

    ;;

  stop)
    if [[ "${VAULT_TOKEN}" != "" ]]; then
      vault operator step-down
    fi
    kill_and_wait $PIDFILE

    ;;
  *)
    echo "Usage: vault_ctl {start|stop}"

    ;;

esac
exit 0
