
#!/bin/bash
# File	: proc_last_asups.sh
# By	: Maarten.deBoer@atos.net, 160125
# Subject	: Script to check for the last ASUPs
#set -x
#(0.2)	: Mode. ASUPDATADIR
PGM="`basename $0|cut -d\. -f1`" 
VERS="0.2"
TMP="/tmp/${PGM}.$$"
ASC="/tmp/${PGM}.asc"

BASEDIR="`pwd | sed 's/scripts//'|sed 's/bin//'`"
LOG="${BASEDIR}/log/${PGM}.log"
DATADIR="${BASEDIR}/data"
COUNTRY="`echo ${BASEDIR}| cut -d\/ -f6`"
CSV="${BASEDIR}/data/${COUNTRY}-last-asups.csv"
SUPPORTMAILTO="${BASEDIR}/etc/supportmailto"

#ASUPDATADIR="/appl/mdr/mdrglob/asup-data"
ASUPDATADIR="/appl/asup/data"

MAILTO="maarten.deboer@atos.net"
AFSPSUP="maarten.deboer@atos.net"

echo "`date` ${PGM} v${VERS} Started."|tee -a ${LOG}
touch ${TMP} ${CSV}

# Read Functions file
source ./afsp-db_functions.sh
DB_FUNC_VER

echo ${BASEDIR}

echo "${COUNTRY} ..."
cp /dev/null  ${TMP}
cp /dev/null  ${CSV}
echo "# Last ASUP of ${COUNTRY}: " > ${CSV}
echo "# FILERNAME;LAST ASUP;FROM THIS;NR;" >> ${CSV}
# If database, then cd to database
if [ -d /appl/mdr/mdrglob/afsp/${COUNTRY}/data/database ]; then
  cd /appl/mdr/mdrglob/afsp/${COUNTRY}/data/database
  ls -1 | while read DBFILE
  do
#   echo "${DBFILE} ..."
    DB_READ ${DBFILE}

    if [ "${DB_CONTROLER_NAME}" != "" ] && [ "${DB_SERIAL_NUMBER}" != "" ]; then
      LAST_ASUP="`grep ^ASUP_GENERATED_ON ${DBFILE}|awk -F\= '{print $2}'`"
      FILER_NAME="`grep ^CONTROLER_NAME ${DBFILE}|awk -F\= '{print $2}'`"
      SERIALNUMBER="`grep ^SERIAL_NUMBER ${DBFILE}|awk -F\= '{print $2}'`"

      ASUPFROM="longer;3"
      DATICOL=""
	  YEAR="`date +%Y`"
	  ANSW="`echo "${LAST_ASUP}"| grep "${YEAR}"`"
	  if [ "${ANSW}" != "" ]; then
	    ASUPFROM="year;2"
        DATICOL="orange"
      fi
      MONTH="`date +%b`"
      ANSW="`echo "${LAST_ASUP}"| grep "${MONTH}"`"
      if [ "${ANSW}" != "" ]; then
	    ASUPFROM="month;1"
        DATICOL="yellow"
      fi
	  MONTHDAY="`date +%b' '%d`"
	  ANSW="`echo "${LAST_ASUP}"| grep "${MONTHDAY}"`"
	  if [ "${ANSW}" != "" ]; then
	    ASUPFROM="today;0"
	    DATICOL="green"
     	fi
	  if [ "${LAST_ASUP}" = "" ]; then
	    ASUPFROM="unknown;4"
	    DATICOL=""
	  fi
    fi  # NAME && SER.NR
  # Select into TMP-file
    if [ "${FILER_NAME}" != "" ] && [ "${ASUPFROM}" != "today;0" ]; then
      echo "${FILER_NAME};${LAST_ASUP};${ASUPFROM};"|tee -a ${TMP}
    fi
  done  # DBFILE
fi  # database

# When TMP file not empty then sort into CSV
if [ -s ${TMP} ]; then
  cat ${TMP}|sort -t\; -k 4 -r|tee -a ${CSV}
# Check if MAILTOFILE is available. Otherwise send to MAILTO
  echo "List of ASUPs received longer then today for ${COUNTRY}. See attached file. Please investigate. Status: https://msssyscol01.atos-srv.net/afsp/${COUNTRY}/models.html . Questions? mailto:${AFSPSUP} " | mailx -a ${CSV} -s "ASUP: longer then today for ${COUNTRY} [${PGM} v${VER}]" ${MAILTO}
  echo "  Mailed to ${MAILTO}."|tee -a ${LOG}
fi

rm ${CSV} ${TMP}
echo "`date` ${PGM} Finished."|tee -a ${LOG}
exit 0

