#!/bin/bash
#
# checks and loads bsclient (and eb) environment:
#
# if $BSCLIENT_ETC_DIR is empty it is set to /etc/bsclient
#
# if $BSCLIENT_ENV_FILE is empty it is set to $BSCLIENT_ETC_DIR/environment
#
# if $BSCLIENT_ENV_FILE is missing or not readable operation is aborted with exit 101 resp. 102,
# otherwise it is sourced

export BSCLIENT_ETC_DIR
export BSCLIENT_ENV_FILE

if [ -z "${BSCLIENT_ETC_DIR}" ] ; then
  BSCLIENT_ETC_DIR="/etc/bsclient"
  #echo "DEBUG: Setting BSCLIENT_ETC_DIR to default, '/etc/bsclient'"
fi

if [ -z "${BSCLIENT_ENV_FILE}" ] ; then
  BSCLIENT_ENV_FILE="${BSCLIENT_ETC_DIR}/environment"
  #echo "DEBUG: Setting BSCLIENT_ENV_FILE to default, in \$BSCLIENT_ETC_DIR/environment, i.e.: '${BSCLIENT_ENV_FILE}'"
fi

if [ ! -f ${BSCLIENT_ENV_FILE} ] ; then
  echo "$(date +%Y-%m-%d\ %H:%M:%S): FATAL: No ${BSCLIENT_ENV_FILE}"
  echo "Please"
  echo "  sudo cp -a /etc/bsclient/environment.template ${BSCLIENT_ENV_FILE}"
  echo '  sudo ${EDITOR:-vi} '"${BSCLIENT_ENV_FILE}"
  echo ""
  exit 101
fi

if [ ! -r ${BSCLIENT_ENV_FILE} ] ; then
  echo "$(date +%Y-%m-%d\ %H:%M:%S): FATAL: Environment file not readable: ${BSCLIENT_ENV_FILE}"
  echo ""
  exit 102
fi

#echo ""
#echo "DEBUG: Before sourcing environment file:"
#echo "  \$BSCLIENT_ETC_DIR='${BSCLIENT_ETC_DIR}'"
#echo "  \$BSCLIENT_ENV_FILE='${BSCLIENT_ENV_FILE}'"
#echo ""

# defaults
export BAKUSER=""
export BAKHOST=""
export BAKDESTBASE=""
export BAKSSHIDFILE="/root/.ssh/id_rsa"
export BAKMKDIRMODE=""
export EBDEVOK=""
export EBMOUNTDIR="" # or /media/eb
export EBDESTBASE="" # or $(hostname -s)
export BSCLIENT_LOGBASE="" # or /var/log/bsclient

# actual environment
. ${BSCLIENT_ENV_FILE}

#if [ -z "${BSCLIENT_LOGBASE}" -a -n "${LOGBASE}" ] ; then
#  # respect cover old /etc/bsclient/environemnt files
#  BSCLIENT_LOGBASE="${LOGBASE}"
#  echo "DEBUG: Replaced empty \$BSCLIENT_LOGBASE with non-empty \$LOGBASE, ${BSCLIENT_LOGBASE}"
#fi
if [ -z "${BSCLIENT_LOGBASE}" ] ; then
  BSCLIENT_LOGBASE="/var/log/bsclient"
  echo "$(date +%Y-%m-%d\ %H:%M:%S): INFO: Replaced empty \$BSCLIENT_LOGBASE with ${BSCLIENT_LOGBASE}"
fi
test -d $BSCLIENT_LOGBASE || mkdir -pv $BSCLIENT_LOGBASE || exit 103

#echo ""
#echo "DEBUG: After sourcing environment file:"
#echo "  \$BSCLIENT_ETC_DIR='${BSCLIENT_ETC_DIR}'"
#echo "  \$BSCLIENT_ENV_FILE='${BSCLIENT_ENV_FILE}'"
#echo "  \$BSCLIENT_LOGBASE='${BSCLIENT_LOGBASE}'"
#echo ""

