
#!/bin/sh
# File	: rpt_decarbon.sh
# By	: Maarten.deBoer@Atos.net, 2022-05-18
# Subject	: Script to report several DeCarbon items
#(0.2),220518	: Added ${TMPDIR}/${CEC_CSV}, ${TMPDIR}/${CE_SCV}
#(0.3),220518	: Added --uks (and -c|--ctry)
PGM=`basename $0|cut -d\. -f1` 
VER="0.3"
#TMP="/tmp/${PGM}.$$"
TMPDIR="/tmp/${PGM}.$$"
BASEDIR="/appl/netapp/decarbon"
LOG="${BASEDIR}/log/${PGM}.log"
RCFILE="${BASEDIR}/etc/${PGM}.rc"
HOSTNAME=`hostname |cut -d\. -f2`
MAIL=""
MAILTO="maarten.deboer@atos.net"

DETAILDIR="${BASEDIR}/details"
DATADIR="${BASEDIR}/data"
ETCDIR="${BASEDIR}/etc"
CTRY=""  # CounTRY
CSCV_CSV="country2systems2cluster2vendor.csv"
CEC_CSV="country2environment2contacts.csv"
CE_CSV="country2environment.csv"
UKS=""  # UnKnownSystems
YRMON=`date +%Y-%m`
UKS_CSV="unknown-systems_${YRMON}.csv"

USAGE()
{
  echo "Usage: $PGM [options] "
  echo "  Version: ${VER}"
  echo "  options       :"
  echo "    -c|--ctry   : Country information"
  echo "    -u|--uks    : Unknown systems"
  echo "    -h          : this help"
  echo "    -m|--mail   : send Mail"
  echo "    -V          : Version"
  echo "    -x          : set -x"
  echo "    --mailto    : change MAILTO address & do send mail (${MAILTO})"
}
if [ -f ${RCFILE} ]; then
  echo "  Reading RCFILE (${RCFILE})"|tee -a ${LOG}
  . ${RCFILE}
fi  # RCFILE
# Check options
while [ $# -gt 0 ]
  do
  case ${1} in
    -c | --ctry) CTRY=1 ;;
    -u | --uks) UKS=1 ;;
    -m | --mail) MAIL=1 ;;
    --mailto) MAILTO="${2}"; MAIL=1; shift ;;
    -V) echo "${PGM}: v${VER}"; exit 3 ;;
    -x)  set -x ;;
    *)  echo "Option ${1} not known."; USAGE; exit 1 ;;
  esac
    shift
done

echo "`date` ${PGM} v${VER} started at ${HOSTNAME}."|tee -a ${LOG} ${TMPDIR}/mail
mkdir ${TMPDIR}
echo "CTRY=${CTRY}"|tee -a ${TMPDIR}/mail
echo "CSCV_CSV=${CSCV_CSV}"|tee -a ${TMPDIR}/mail
echo "CEC_CSV=${CEC_CSV}"|tee -a ${TMPDIR}/mail
echo "CE_CSV=${CE_CSV}"|tee -a ${TMPDIR}/mail
echo "UKS_CSV=${UKS_CSV}"|tee -a ${TMPDIR}/mail
echo "MAIL=${MAIL}"|tee -a ${TMPDIR}/mail
echo "MAILTO=${MAILTO}"|tee -a ${TMPDIR}/mail


if [ ${CTRY} ]; then
  echo "  ${CSCV_CSV} (${TMPDIR}/${CSCV_CSV}) ..."
  echo "# country;node/system-name;clustername;vendorname;model/arch-name;" > ${TMPDIR}/${CSCV_CSV}
  cat ${ETCDIR}/${CSCV_CSV}|grep -v ^#|sort|while read LINE
  do
#    echo "  LINE=${LINE}"
    echo -n "."
    echo "${LINE}" >> ${TMPDIR}/${CSCV_CSV}
  done  # cat ${ETCDIR}
  echo "|"

  echo "  ${CEC_CSV} (${TMPDIR}/${CEC_CSV}) ..."
  echo "# Atos DC;Lead;VMAX;VNX;PowerMax;DataDomain (DPA);NetApp;Hitachi;Unity;Isilon;" > ${TMPDIR}/${CEC_CSV}
  cat ${ETCDIR}/${CEC_CSV}|grep -v ^#|sort|while read LINE
  do
#    echo "  LINE=${LINE}"
    echo -n "."
    echo "${LINE}" >> ${TMPDIR}/${CEC_CSV}
  done  # cat ${ETCDIR}
  echo "|"

  echo "  ${CE_CSV} (${TMPDIR}/${CE_CSV}) ..."
  echo "# Country; Vendor; Environment (- ot=OnTap, vnx=VNX, vmax=VMAX, dpa=DPA, dd=DataDomain) ;" > ${TMPDIR}/${CE_CSV}
  cat ${ETCDIR}/${CE_CSV}|grep -v ^#|sort|while read LINE
  do
#    echo "  LINE=${LINE}"
    echo -n "."
    echo "${LINE}" >> ${TMPDIR}/${CE_CSV}
  done  # cat ${ETCDIR}
  echo "|"

  if [ ${MAIL} ]; then
    cat ${TMPDIR}/mail|mailx -a ${TMPDIR}/${CSCV_CSV} -a ${TMPDIR}/${CEC_CSV} -a ${TMPDIR}/${CE_CSV} -s ":${HOSTNAME}: Decarbon report(s) [${PGM} v${VER}]" ${MAILTO}
    echo "  Mailed to ${MAILTO}"|tee -a ${LOG}
  fi  # MAIL
  rm  ${TMPDIR}/${CSCV_CSV} ${TMPDIR}/${CEC_CSV} ${TMPDIR}/${CE_CSV}
fi  # CTRY

if [ ${UKS} ]; then
  ls -1 ${DATADIR}/unknown-systems_${YRMON}*.csv|while read FNAME
  do
    FDATE=`echo ${FNAME}|cut -d\_ -f2|cut -d\. -f1`
    echo "  FNAME=${FNAME}, FDATE=${FDATE}"
    echo "# FDATE=${FDATE};" >> ${TMPDIR}/${UKS_CSV}
    cat ${FNAME}|grep -v ^#|while read LINE
    do
#      echo "    LINE=${LINE}"
      echo -n "."
      echo "${LINE}" >> ${TMPDIR}/${UKS_CSV}
    done  # cat
  echo "|"

  done  # FNAME

  if [ ${MAIL} ]; then
    cat ${TMPDIR}/mail|mailx -a ${TMPDIR}/${UKS_CSV} -s ":${HOSTNAME}: Decarbon report(s) [${PGM} v${VER}]" ${MAILTO}
    echo "  Mailed to ${MAILTO}"|tee -a ${LOG}
  fi  # MAIL
  rm  ${TMPDIR}/${UKS_CSV} 
fi  # UKS

rm ${TMPDIR}/mail
rmdir ${TMPDIR} 
echo "`date` ${PGM} v${VER} finished."|tee -a ${LOG}
exit 0

