#!/bin/bash
################################################################################
# Copyright (c) 2013-2016 VMware, Inc. All rights reserved.
################################################################################
# Wrapper aimed at performing auto-tuning of a PostgreSQL instance depending
# on system environment.

ENCODING=UTF8
THIS_DIR=`dirname $0`

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`"
   echo "Example: `basename $0`"
   exit $ERROR_NUM
}

EXPECTED_ARGS=0
if [ $# -ne $EXPECTED_ARGS ]; then
   # Leave with an error code
   show_help 1
fi

# Script and options to use for auto-tuning
PGAUTOCONF="${VMWARE_POSTGRES_BIN}/vmw_vpg_config/vmw_vpg_config.py"
PGAUTOCONF_ARGS="--action autoconf --pg-data-dir ${VMWARE_POSTGRES_DATA} "
PGAUTOCONF_ARGS+="--pg-xlog-dir ${VMWARE_POSTGRES_XLOG} "
PGAUTOCONF_ARGS+="--pg-log-dir ${VMWARE_POSTGRES_LOG} "
PGAUTOCONF_ARGS+="--CIS-mode"

# Import necessary Python libraries
PYTHONPATH="${VMWARE_PYTHON_PATH}:${VMWARE_POSTGRES_BASE}/share/python-modules"

# Perform the actual auto-tuning
PYTHONPATH=${PYTHONPATH} ${VMWARE_PYTHON_BIN} ${PGAUTOCONF} ${PGAUTOCONF_ARGS}
