
#!/bin/bash
# File	: proc_change.sh
# By	: Maarten.deBoer@Atos.net, 190507
# Subject	: Script to process Change subject
#(0.2),190507	: Mod. COLOR
PGM=`basename $0|cut -d\. -f1`
VER="0.2"
TMP="/tmp/${PGM}.$$"
LOG="${HOME}/log/${PGM}.log"
FROM="changelist@agrarix.nl"
SENDBACK=""
MAILSUBJECT=""
WEBUPD=""
MAILTO=""
PLANNING=""
SUBJECT=""
SUBJECT1=""
COMMAND=""
HOSTNAME=`hostname|cut -d\. -f1`
MAILHTML=""
MAILHTMLTO="nl19471@nlxmss04.bcklan.ao-srv.com"

DATADIR="${HOME}/data/changelist"
LISTFILE="${DATADIR}/changelist.csv"
WEBADDR="http://changelist.agrarix.net"
HTMLDIR="/mnt/nas/www/domains/changelist.agrarix.net/pages"
HTML="${HTMLDIR}/index.html"
FONTFACE="Arial"
FONTSIZE="4"

USAGE()
{
  echo "Usage: ${PGM} [options]"
  echo "Options            : "
  echo "     -f|--from     : From address (${FROM})"
  echo "     -h|--help     : This help"
  echo "     -m|--mailhtml : Mail html to (${MAILHTMLTO})"
  echo "     -s|--subject  : Subject (${SUBJECT})"
  echo "     -w|--webupd   : Web(page) update"
  echo "     -v            : Verbose"
  echo "     -V            : Version"
}

while [ ${#} -gt 0 ]
do
  case "${1}" in
    '-h'|'--help') USAGE; exit 1 ;;
    '-f'|'--from') FROM="${2}"; shift ;;
    '-m'|'--mailhtml') MAILHTML=1 ;;
    '-s'|'--subject') SUBJECT="${2}"; shift ;;
    '-w'|'--webupd') WEBUPD=1 ;;
    '-x')  set -x ;;
    '-V')  echo "Version=${VER}" ; exit 1 ;;
    *) echo "Option ${1} not found." ; USAGE; exit 1 ;;
  esac
  shift
done

echo "`date` ${PGM} v${VER} started."|tee -a ${LOG}
echo "LOG=${LOG}"
echo "DATADIR=${DATADIR}"
echo "LISTFILE=${LISTFILE}"
echo "FROM=${FROM}"
echo "HTMLDIR=${HTMLDIR}"
echo "HTML=${HTML}"
echo "SENDBACK=${SENDBACK}"
echo "SUBJECT=${SUBJECT}"
echo "COMMAND=${COMMAND}"
echo "MAILSUBJECT=${MAILSUBJECT}"
echo "WEBUPD=${WEBUPD}"

touch ${TMP}
if [ ! -d ${DATADIR} ]; then
  echo "  NO DATADIR (${DATADIR}). Creating ..."|tee -a ${LOG}
  mkdir -p ${DATADIR}
fi

# Proc incomming (mail)data
if [ "${SUBJECT}" != "" ]; then
  echo "  Incomming subject:${SUBJECT}|"|tee -a ${LOG}
# Check if Subject is already in LIST-file
# If not, then update as NEW(7)
  grep ";${SUBJECT};" ${LISTFILE}
  EC=${?}
  echo "EC=${EC}"|tee -a ${LOG}
# 1 = NOT found, then create New (2)
  if [ ${EC} -eq 1 ]; then
    CURDAT=`date +%y%m%d`
# Layout = ModDATE;CH.NR;SUBJECT;CH.DATE;
    echo "${CURDAT};<ChangeNr>;${SUBJECT};<YYYYmmdd>;" >> ${LISTFILE}
    echo "  Subject (${SUBJECT}) added to LISTFILE (${LISTFILE})."|tee -a ${LOG}
  fi  # EC=0
  if [ ${EC} -eq 0 ]; then
    echo "  Subject (${SUBJECT}) already in list. NOT added."|tee -a ${LOG}
  fi
  
  MAILHTML=1
  WEBUPD=1
  SENDBACK=1
fi  # ${SUBJECT} <> ""



# WEBUPDate ============================================
if [ ${WEBUPD} ]; then
  echo "  UPDating WEBpage ..."| tee -a ${LOG}
  UPDATE=`date +%Y-%m-%d-%H-%M-%S`
  if [ ! -d ${HTMLDIR} ]; then
    echo "  NO HTMLDIR (${HTMLDIR}) found. Exiting ..."|tee -a ${LOG}
    exit 3
  fi
  if [ ! -f ${LISTFILE} ]; then
    echo "  NO LISTFILE (${LISTFILE}) found. Exiting ..."|tee -a ${LOG}
    exit 4
  fi
  echo "  Copying actionlistfile (${LISTFILE}) to TMP (${TMP}) for sorting ..."
  /bin/cat ${LISTFILE} |/bin/grep -v ^# |while read LINE
  do
    CHMDATE=`echo ${LINE}|cut -d\; -f1`
# Empty ACTSUBJECT when 1st char of Subject is #
    CHSUBJECT=`echo ${LINE}|cut -d\; -f2|grep -v ^#`
    CHNR=`echo ${LINE}|cut -d\; -f3`
    CHDATE=`echo ${LINE}|cut -d\; -f4`
    if [ "${CHSUBJECT}" != "" ]; then
      echo "${CHDATE};${CHNR};${CHSUBJECT};${CHMDATE};" >> ${TMP}
    fi
  done  # LISTFILE

  echo "<HTML>" > ${HTML}
  echo "<HEAD>" >> ${HTML}
  echo " <META NAME='generator' content='${PGM} v${VER}' /> " >> ${HTML}
  echo " <META NAME='up-date' content='${UPDATE}' /> " >> ${HTML}
  echo "  <title>Change List</title> " >> ${HTML}
  echo "</HEAD>" >> ${HTML}
  echo "<BODY>" >> ${HTML}
  echo "<H1>Change List</H1>" >> ${HTML}

  echo "  <TABLE border=1>" >> ${HTML}

  echo "    <TR>" >> ${HTML}
  echo "      <TD> <FONT face=${FONTFACE} size=${FONTSIZE}> <B> Ch.Date </B> </TD>" >> ${HTML}
  echo "      <TD> <FONT face=${FONTFACE} size=${FONTSIZE}> <B> Change Nr </B> </TD>" >> ${HTML}
  echo "      <TD> <FONT face=${FONTFACE} size=${FONTSIZE}> <B> Change (subject) </B> </TD>" >> ${HTML}
  echo "      <TD> <FONT face=${FONTFACE} size=${FONTSIZE}> <B> M.Date </B> </TD> " >> ${HTML}
  echo "    </TR>" >> ${HTML}

# Use TMP to Sort on Cat
  /bin/cat ${TMP}|/usr/bin/sort| while read LINE
  do
    CHDATE=`echo ${LINE}|cut -d\; -f1`
    CHANGENR=`echo ${LINE}|cut -d\; -f2`
    SUBJECT=`echo ${LINE}|cut -d\; -f3`
    MDATE=`echo ${LINE}|cut -d\; -f4`

    echo "${CHDATE};${CHANGENR};${SUBJECT};${MDATE};"

    if [ "${SUBJECT}" != "" ] ;then
      echo "    <TR>" >> ${HTML}

# COLORs
      BGCOL=""
      CURDATE=`date +%Y%m%d`
echo "CURDATE=${CURDATE} CHDATE=${CHDATE}"
      if [ ${CURDATE} -gt ${CHDATE} ];  then
        BGCOL="green"
      fi
      if [ ${CURDATE} -eq ${CHDATE} ];  then
        BGCOL="orange"
      fi
      if [ ${CURDATE} -lt ${CHDATE} ];  then
        BGCOL="yellow"
      fi
      if [ "${CHANGENR}" = "<ChangeNr>" ];  then
        BGCOL="lightblue"
        CHANGENR="ChangeNr ??"
      fi
      if [ "${CHANGENR}" = "" ];  then
        BGCOL="lightblue"
        CHANGENR="ChangeNr ??"
      fi

      echo "      <TD BGCOLOR=${BGCOL}><FONT face=${FONTFACE} size=${FONTSIZE}> " >> ${HTML}
      echo "        ${CHDATE}" >> ${HTML}
      echo "      </TD>" >> ${HTML}

      echo "      <TD><FONT face=${FONTFACE} size=${FONTSIZE}> " >> ${HTML}
      echo "        ${CHANGENR}" >> ${HTML}
      echo "      </TD>" >> ${HTML}
      echo "      <TD><FONT face=${FONTFACE} size=${FONTSIZE}> " >> ${HTML}
      echo "        ${SUBJECT}" >> ${HTML}
      echo "      </TD>" >> ${HTML}
      echo "      <TD><FONT face=${FONTFACE} size=${FONTSIZE}> " >> ${HTML}
      echo "        ${MDATE}" >> ${HTML}
      echo "      </TD>" >> ${HTML}
      echo "    </TR>" >> ${HTML}
    fi

  done  # cat ${TMP}

  echo "  </TABLE>" >> ${HTML}
  echo "<P>" >> ${HTML}

  echo "  <TABLE border=0>" >> ${HTML}
  echo "    <TR>" >> ${HTML}
  echo "      <TD><FONT face=${FONTFACE} size=${FONTSIZE}> " >> ${HTML}
  echo "        Ch.Date legenda:" >> ${HTML}
  echo "      </TD>" >> ${HTML}
  echo "      <TD BGCOLOR="green"><FONT face=${FONTFACE} size=${FONTSIZE}> " >> ${HTML}
  echo "        Old" >> ${HTML}
  echo "      </TD>" >> ${HTML}
  echo "      <TD BGCOLOR="orange"><FONT face=${FONTFACE} size=${FONTSIZE}> " >> ${HTML}
  echo "        Today" >> ${HTML}
  echo "      </TD>" >> ${HTML}
  echo "      <TD BGCOLOR="yellow"><FONT face=${FONTFACE} size=${FONTSIZE}> " >> ${HTML}
  echo "        Upcomming" >> ${HTML}
  echo "      </TD>" >> ${HTML}
  echo "      <TD BGCOLOR="lightblue"><FONT face=${FONTFACE} size=${FONTSIZE}> " >> ${HTML}
  echo "        Unknown Ch.Nr" >> ${HTML}
  echo "      </TD>" >> ${HTML}
  echo "    </TR>" >> ${HTML}
  echo "  </TABLE>" >> ${HTML}

  echo "<H6> `date` by ${PGM} v${VER} @ ${HOSTNAME} </H6>" >> ${HTML}
  echo "</HTML>" >> ${HTML}

fi  # WEBUPD


# SENDmailBACK ========================================
if [ ${SENDBACK} ]; then
  MAILTO="${FROM}"
  echo "  Sending mail back to ${MAILTO}"|tee -a ${LOG}
  echo "Changelist has been processed and updated (${WEBADDR})."| mailx -s "Actionlist processed." ${MAILTO}
fi  # SENDBACK

if [ ${MAILHTML} ]; then
  MAILTO="${MAILHTMLTO}"
  echo "  Sending HTML by mail to ${MAILTO}"|tee -a ${LOG}
  cat ${HTML} | mailx -s "${PGM}.html: " ${MAILTO}
fi  # MAILHTML


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

