
#!/bin/sh
# File	: upd_fsod-mgt.sh
# By	: maarten.deboer@atos.net, 170119, 171214
# Subject	: Scripts to update the fsdo-server-status-page
#(0.2),171221	: Upd
PGM="`basename $0|cut -d\. -f1`"
VER="0.2"
TMP="/tmp/${PGM}.$$"
LOG="${HOME}/log/${PGM}.log"
#ETC="${HOME}/etc/${PGM}"
CONF="${HOME}/etc/fsod-mgt.conf"
STATUSFILE="${HOME}/data/fsod-mgt.status"
HOSTNAME="`hostname|cut -d\. -f1`"
PAGE="/var/www/html/fsod-mgt/index.html"
BORDERS=0
SIZE=4
MAILTO="Maarten.deBoer@Atos.net"

USAGE()
{
  echo "Usage: ${PGM} <options>"
  echo "  Version: ${VERSION}"
  echo "  options:"
  echo "    -b          : with Borders (${BORDERS})"
  echo "    -c <n>      : with <n> Columns (${MAXCOL})"
  echo "    -e          : change Etc/conf-file (${ETC})"
  echo "    -h | --help : this help"
  echo "    -s <n>      : characters Size <n> {${SIZE})"
  echo "    -x          : set -x"
  echo "    --mailto	: set MAILTO (${MAILTO})"
  echo "    --page	: set PAGE (${PAGE})"
}
# Check options
while [ ${#} -ge 1 ]
  do
  case ${1} in
    -b) BORDERS=1 ;;
    -c) MAXCOL=${2}; shift ;;
    -s) SIZE=${2}; shift ;;
    -e) CONF=${2}; shift ;;
    -h | --help) USAGE; exit 1 ;;
    -V) echo "${PGM}: v${VERSION}"; exit 3 ;;
    -x)  set -x ;;
    --mailto) MAILTO=${2}; shift ;;
    --page) PAGE=${2}; shift ;;
    *)  echo "Option ${1} not known."; USAGE; exit 1 ;;
  esac
    shift
done

echo "`date` ${PGM} v${VER} started" | tee -a ${LOG}
touch ${TMP}
if [ ! -f ${ETC} ]; then
  echo "`date` ${PGM}: No etc-file ${ETC} found. Exiting ..."|tee -a ${LOG}
  exit 4
fi

echo "<!DOCTYPE html>" > ${PAGE}
echo "<HTML>" >> ${PAGE}
echo "<HEAD>" >> ${PAGE}
echo "<META charset='UTF-8'>" >> ${PAGE}
echo "<META content=Maarten de Boer name=AUTHOR>" >> ${PAGE}
echo "<TITLE>FSOD mgt</TITLE>" >> ${PAGE}
echo "<basefont face='verdana'>" >> ${PAGE}
echo "</HEAD>" >> ${PAGE}
echo "<BODY aLink=blue bgColor=#D3D0D3 link=blue text=#000000 vLink=blue>" >> ${PAGE}
echo "<TABLE BORDER=0 WIDTH='100%'>" >> ${PAGE}
echo "<TR HEIGHT=40px>" >> ${PAGE}
echo "  <TD bgColor=#0066A1>" >> ${PAGE}
echo "    <FONT COLOR=white face='verdana' size='5'> <B> (NL-)FSOD management server status page</B> </FONT>" >> ${PAGE}
echo "    <BR>" >> ${PAGE}
echo "    <DIV align=right>" >> ${PAGE}
echo "    <FONT COLOR=white face='verdana' size='-3'> At `hostname` </B> </FONT>" >> ${PAGE}
#echo "    <FONT COLOR=white face='verdana' size='-3'> For internal use. (c) Atos BTN `date +%Y` </B> </FONT>" >> ${PAGE}
echo "    </DIV>" >> ${PAGE}
echo "  <TD>" >> ${PAGE}
echo "</TR>" >> ${PAGE}
echo "</TABLE>" >> ${PAGE}
echo "<BR>" >> ${PAGE}

echo "<TABLE BORDER=${BORDERS} WIDTH='100%'>" >> ${PAGE}
echo "  <TR>" >> ${PAGE}
echo "  </TR>" >> ${PAGE}

echo "  <TR>" >> ${PAGE}
echo "    <TD> <FONT COLOR=black face='verdana' size=${SIZE}> <B> NAME </FONT> </TD> " >> ${PAGE}
echo "    <TD> <FONT COLOR=black face='verdana' size=${SIZE}> <CENTER> <B> admin <BR> STATUS </FONT> </TD> " >> ${PAGE}
echo "    <TD> <FONT COLOR=black face='verdana' size=${SIZE}> <B> DESCRIPTION </FONT> </TD> " >> ${PAGE}
echo "  </TR>" >> ${PAGE}

cat ${CONF}|grep -v ^#|sort|while read LINE
do
  NAME="`echo ${LINE}|awk -F\; '{print $1}'`"
  DESCRIPT="`echo ${LINE}|awk -F\; '{print $2}'`"
  STATUS="`grep ${NAME} ${STATUSFILE}|awk -F\; '{print $2}'|head -1`"
  if [ "${STATUS}" = "" ]; then
    STATUS=" ?? "
  fi
  echo "${NAME} - ${DESCRIPT} - ${STATUS}"

  echo "  <TR>" >> ${PAGE}
  echo "    <TD> <FONT COLOR=black face='verdana' size=${SIZE}> ${NAME} </FONT> </TD> " >> ${PAGE}

  BGCOLOR=""
  if [ `echo ${STATUS}|grep -i active` ]; then
    BGCOLOR="green"
  fi
  if [ `echo ${STATUS}|grep -i backup` ]; then
    BGCOLOR="yellow"
  fi
  if [ `echo ${STATUS}|grep -i standby` ]; then
    BGCOLOR="orange"
  fi
  if [ `echo ${STATUS}|grep -i down` ]; then
    BGCOLOR="red"
  fi
  if [ `echo ${STATUS}|grep -i new` ]; then
    BGCOLOR="blue"
  fi
  if [ `echo ${STATUS}|grep -i gone` ]; then
    BGCOLOR=""
  fi
  echo "    <TD BGCOLOR=${BGCOLOR}> <FONT COLOR=black face='verdana' size=${SIZE}> <CENTER> ${STATUS} </FONT> </TD> " >> ${PAGE}

  echo "    <TD> <FONT COLOR=black face='verdana' size=${SIZE}> ${DESCRIPT} </FONT> </TD> " >> ${PAGE}


  echo "  </TR>" >> ${PAGE}
done  # cat

echo "  <TR>" >> ${PAGE}
echo "  </TR>" >> ${PAGE}
echo "</TABLE>" >> ${PAGE}


echo "<TABLE BORDER=0 WIDTH='100%'>" >> ${PAGE}
echo "<TR>" >> ${PAGE}
echo "  <TD bgColor=#0066A1 >" >> ${PAGE}
echo "    <FONT COLOR=white face='Verdana' size='1'>" >> ${PAGE}
echo "      <CENTER>" >> ${PAGE}
echo "Contact & Content Owner: <A HREF=mailto:${MAILTO}>${MAILTO}</A> |Last Update:`date`" >> ${PAGE}
echo " <BR>" >> ${PAGE}
echo "For internal use (c) Atos S.A. `date +%Y` all rights reserved. Reproduction in whole or in part is prohibited without the written consent of Atos SA." >> ${PAGE}
echo "      </CENTER>" >> ${PAGE}
echo "    </FONT>" >> ${PAGE}
echo "  </TD>" >> ${PAGE}
echo "</TR>" >> ${PAGE}
echo "</TABLE>" >> ${PAGE}
echo "</BODY>" >> ${PAGE}
echo "</HTML>" >> ${PAGE}

rm ${TMP}
exit 0

