#!/bin/bash
################################################################################
# Copyright (c) 2013-2017 VMware, Inc. All rights reserved.
################################################################################
# One-time start command for Postgres. This script should be run as root.

ENCODING=UTF8
THIS_DIR=`dirname $0`
BIN_PATH=
PG_VER="current"

if [ -z $VMWARE_POSTGRES_BASE ]; then
   echo "VMWARE_POSTGRES_BASE is not set."
   echo "Check your installation."
   exit 1
fi
SANITY_FILE=$VMWARE_POSTGRES_BASE/scripts/vpostgres_sanity_checks
if [ -f $SANITY_FILE ]; then
   source $SANITY_FILE
else
   echo "Sanity check file for environment variables of VMware Postgres"
   echo "is not available. Check your installation."
   exit 1
fi

# Show utility help
show_help()
{
   ERROR_NUM=$1

   echo "Usage: `basename $0` [PG_VERSION] [--help]"
   echo "Example: `basename $0` 11"
   exit $ERROR_NUM
}

if [ $# -gt 1 ]; then
   # Leave with an error code
   show_help 1
fi

if [ $# -eq 1 ]; then
    if [ "$1" == "--help" ]; then
        show_help 0
    else
        PG_VER="$1"
    fi
fi

BASE_PATH="${VMWARE_POSTGRES_ROOT}/${PG_VER}"
BIN_PATH="${BASE_PATH}/bin"

if [ ! -d "${BIN_PATH}" ] || [ ! -f "${BIN_PATH}/pg_ctl" ]; then
    echo "Invalid PostgreSQL version \"${PG_VER}\""
    echo "Make sure that you installed the required VMware-Postgres-upgrade-${PG_VER}-* package"
    echo ""
    # Leave with an error code
    show_help 1
fi

# Launch start command
su -s /bin/bash - $VMWARE_POSTGRES_OS_ADMIN \
   -c "LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${BASE_PATH}/lib-private ${BIN_PATH}/pg_ctl start -w -D '$VMWARE_POSTGRES_DATA' --core-files -l $VMWARE_POSTGRES_LOG/serverlog -t 300"
