
#!/bin/bash
# File	: upd_own-planning.sh
# By	: MaartenDeBoer.nl, 161010
# Subject	: Script to update the own-planning
#(0.2)	: Added @
#(0.3)	: Added weekplanning
#(0.4)	: Added unplanned
#(0.5)	: Mod. planning layout
PGM="`basename $0|cut -d\. -f1`"
VER="0.5"
LOG="${HOME}/log/${PGM}.log"
TMP="/tmp/${PGM}.$$"

PAGE="/var/www/html/own-planning/index.html"
COLORFILE="${HOME}/etc/planning_colors"
TMPBGCOLOR="${TMP}.bgcolor"
HOSTNAME="`hostname|cut -d\. -f1`"

# Number Of Collumns
NOC=14
PLANDIR="${HOME}/data/own-planning"


TODAY="`date +%Y-%m-%d`"
echo "`date` ${PGM} v${VER} (TODAY=${TODAY}) started"|tee -a ${LOG}

rm -f ${PAGE}
touch ${PAGE} ${TMP}

# Header
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>Own (FSOD-)planning</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>Automatic own (FSOD) planning</B> </FONT>" >> ${PAGE}
echo "    <BR>" >> ${PAGE}
echo "    <DIV align=left>" >> ${PAGE}
echo "    <FONT COLOR=white face='verdana' size='-1'>Source in aoxnlfsd01:/home/username/.planning/planning.csv </B> (cron-updates: `crontab -l|grep ${PGM}|awk '{print $1,$2,$3,$4,$5}'`)</FONT>" >> ${PAGE}
echo "    <DIV align=right>" >> ${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 "<TR>" >> ${PAGE}
echo "  <TD BGCOLOR=SkyBlue> <FONT COLOR=white face='verdana' size='3'>  <A HREF=http://161.90.124.116/ICS_Storage/ICS_FSoD/2months.htm>Official FSOD planning(PME) tool </A> </FONT> </TD>" >> ${PAGE}
echo "</TR>" >> ${PAGE}
echo "</TABLE>" >> ${PAGE}
echo "<BR>" >> ${PAGE}


#  DAY="`date --date \"$DSTR\" +%d-%m`"

echo "  DAYS ..."
echo "<FONT COLOR=red face='verdana' size='5'> <B>${NOC} days planning</B> </FONT>" >> ${PAGE}

WIDTH="10%"
FONTSIZE=2
# 1st row ---------------- 
echo "<TABLE BORDER=1 WIDTH=\"100%\" >" >> ${PAGE}
echo "  <TR>" >> ${PAGE}
echo "    <TD WIDTH=${WIDTH} BGCOLOR='white'><FONT FACE=\"verdana\" SIZE=\"${FONTSIZE}\">(passwd-file)Name <BR> (username)</FONT></TD>" >> ${PAGE}
DAY=0
while [ ${DAY} -lt ${NOC} ]
do
  BGCOLOR=""
  WIDTH="10%"
  DSTR="${DAY} days"
  DATESTR="`date --date \"${TODAY} $DSTR\" +%Y-%m-%d`"
  DAYSTR="`date --date \"${TODAY} $DSTR\" +%a`"
  WEEKNR="`date --date \"${TODAY} $DSTR\" +%W`"
  DAY="`expr ${DAY} + 1`"
  ANSW="`echo ${DAYSTR}|egrep 'Sat|Sun'`"
  if [ "${ANSW}" != "" ]; then
    BGCOLOR="grey"
    WIDTH="3%"
  else
    BGCOLOR="lightgrey"
  fi
  echo "    <TD WIDTH=${WIDTH} ALIGN='center' BGCOLOR=${BGCOLOR}><FONT FACE=\"verdana\" SIZE=\"${FONTSIZE}\">${DATESTR} <BR> ${DAYSTR}, W${WEEKNR} </FONT></TD>" >> ${PAGE}
done
BGCOLOR=white
echo "    <TD WIDTH=${WIDTH} ALIGN='center' BGCOLOR=${BGCOLOR}><FONT FACE=\"verdana\" SIZE=\"${FONTSIZE}\">unplanned</FONT></TD>" >> ${PAGE}


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

# more rows ---------------- 
cd ${PLANDIR}
ls -1 * | cut -d\_ -f1|sort -u|while read USER REST
do
  echo "  <TR>" >> ${PAGE}

  NAME="`grep ${USER} ${PLANDIR}/${USER}_passwd-info|awk -F\: '{print $5}'`"
  echo "    <TD WIDTH=${WIDTH} BGCOLOR='white'><FONT FACE=\"verdana\" SIZE=\"${FONTSIZE}\">${NAME} <BR> (${USER})</FONT></TD>" >> ${PAGE}
  PLANFILE="${PLANDIR}/${USER}_planning.csv"
  echo "  ${NAME} (${USER}) ..."
  DAY=0
  while [ ${DAY} -lt ${NOC} ]
  do
    BGCOLOR=""
    echo "" > ${TMPBGCOLOR}
    DSTR="${DAY} days"
    DATESTR="`date --date \"${TODAY} $DSTR\" +%Y-%m-%d`"
    DAY="`expr ${DAY} + 1`"
    WHERESTR="`grep ${DATESTR} ${PLANFILE}|grep -v ^#|head -1|awk -F\; '{print $2}'`"
    WHATSTR="`grep ${DATESTR} ${PLANFILE}|grep -v ^#|head -1|awk -F\; '{print $3}'`"
    BGCOLOR=""
    if [ "${WHATSTR}" != "" ]; then
# Check colors
      cat ${COLORFILE}|grep -v ^#|while read LINE
      do
        OPTION=""
        COLOR="`echo ${LINE}|awk -F\; '{print $1}'`"
        OPTION="`echo ${LINE}|awk -F\; '{print $2}'`"
        STRING="`echo ${LINE}|awk -F\; '{print $3}'`"
        if [ "${STRING}" != "" ]; then
          ANSW="`echo ${WHATSTR}|egrep ${OPTION} \"${STRING}\"`"
        fi  # STRING
        if [ "${ANSW}" != "" ]; then
          BGCOLOR=${COLOR}
          echo "${BGCOLOR}" > ${TMPBGCOLOR}
        fi  # ANSW
      done  # COLORFILE
    fi  # WHATSTR
    BGCOLOR="`cat ${TMPBGCOLOR}`"

    echo "    <TD BGCOLOR=${BGCOLOR}><FONT FACE=\"verdana\" SIZE=\"${FONTSIZE}\" > <I><U><B>${WHERESTR}</B></U></I> <BR> ${WHATSTR}</FONT></TD>" >> ${PAGE}
  done  # DAY
# Last, unplanned TD
  BGCOLOR=white
  WHATSTR="`grep '0000-00-00' ${PLANFILE}|grep -v ^#|awk -F\; '{print $3}'`"
  if [ "${WHATSTR}" != "" ] ;then
    echo "    <TD BGCOLOR=${BGCOLOR}><FONT FACE=\"verdana\" SIZE=\"${FONTSIZE}\" >${WHATSTR}</FONT></TD>" >> ${PAGE}
  fi  # WHATSTR

done  # USER

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

echo "<BR>" >> ${PAGE}
# Legenda ------------------
echo "<TABLE BORDER=0 >" >> ${PAGE}
echo "  <TR>" >> ${PAGE}
echo "    <TD><FONT face= 'verdana' size=${FONTSIZE}>Color legenda</TD>" >> ${PAGE}
echo "    <TD><FONT face= 'verdana' size=${FONTSIZE}>(${HOSTNAME}:${COLORFILE})</TD>" >> ${PAGE}
echo "    <TD><FONT face= 'verdana' size=${FONTSIZE}>Last match:</TD>" >> ${PAGE}
echo "  </TR>" >> ${PAGE}
echo "</TABLE>" >> ${PAGE}

echo "<TABLE BORDER=0 >" >> ${PAGE}
echo "  <TR>" >> ${PAGE}
cat ${COLORFILE}|grep -v ^#|while read LINE
do
  COLOR="`echo ${LINE}|awk -F\; '{print $1}'`"
  OPTION="`echo ${LINE}|awk -F\; '{print $2}'`"
  STRING="`echo ${LINE}|awk -F\; '{print $3}'`"
  echo "    <TD BGCOLOR=${COLOR}><FONT face='verdana' SIZE=${FONTSIZE}>${STRING} (${COLOR})</TD>" >> ${PAGE}
done  # cat
echo "  </TR>" >> ${PAGE}
echo "</TABLE>" >> ${PAGE}

echo "<BR>" >> ${PAGE}


## WEEKS ===========================================================
echo "  WEEKS ..."

## 2nd header (weeks) ---------------- 
echo "<FONT COLOR=red face='verdana' size='5'> <B>${NOC} weeks planning</B> </FONT>" >> ${PAGE}

WIDTH="8%"
FONTSIZE=1
# 2nd row (weeks) ---------------- 
echo "<TABLE BORDER=1 WIDTH=\"100%\" >" >> ${PAGE}
echo "  <TR>" >> ${PAGE}
echo "    <TD WIDTH=${WIDTH} BGCOLOR='white'><FONT FACE=\"verdana\" SIZE=\"${FONTSIZE}\">(passwd-file)Name <BR> (username)</FONT></TD>" >> ${PAGE}
WEEK=0
while [ ${WEEK} -lt ${NOC} ]
do
  BGCOLOR=""
  DSTR="${WEEK} weeks"
  DATESTR="`date --date \"${TODAY} $DSTR\" +%Y-%m-%d`"
  WEEKNR="`date --date \"${TODAY} $DSTR\" +%W`"
  WEEK="`expr ${WEEK} + 1`"
  echo "    <TD ALIGN='center' BGCOLOR=${BGCOLOR}><FONT FACE=\"verdana\" SIZE=\"${FONTSIZE}\">${DATESTR} <BR> W${WEEKNR}</FONT></TD>" >> ${PAGE}
done
BGCOLOR=white
echo "    <TD ALIGN='center' BGCOLOR=${BGCOLOR}><FONT FACE=\"verdana\" SIZE=\"${FONTSIZE}\">unplanned</FONT></TD>" >> ${PAGE}

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

# more rows ----------------
cd ${PLANDIR}
ls -1 * | cut -d\_ -f1|sort -u|while read USER REST
do
  echo "  <TR>" >> ${PAGE}

  NAME="`grep ${USER} ${PLANDIR}/${USER}_passwd-info|awk -F\: '{print $5}'`"
  echo "    <TD WIDTH=${WIDTH} BGCOLOR='white'><FONT FACE=\"verdana\" SIZE=\"${FONTSIZE}\">${NAME} <BR> (${USER})</FONT></TD>" >> ${PAGE}
  PLANFILE="${PLANDIR}/${USER}_planning.csv"
  echo "  ${NAME} (${USER}) ..."
  DAY=0
  while [ ${DAY} -lt ${NOC} ]
  do
    BGCOLOR=""
    echo "" > ${TMPBGCOLOR}
    DSTR="${DAY} weeks"
    WEEKSTR="`date --date \"${TODAY} $DSTR\" +%Y'w'%W`"
    DAY="`expr ${DAY} + 1`"
#    WHERESTR="`grep ${DATESTR} ${PLANFILE}|grep -v ^#|head -1|awk -F\; '{print $2}'`"
    WHATSTR="`grep ${WEEKSTR} ${PLANFILE}|grep -v ^#|head -1|awk -F\; '{print $3}'`"
    if [ "${WHATSTR}" != "" ]; then
# Check colors
      cat ${COLORFILE}|grep -v ^#|while read LINE
      do
        OPTION=""
        COLOR="`echo ${LINE}|awk -F\; '{print $1}'`"
        OPTION="`echo ${LINE}|awk -F\; '{print $2}'`"
        STRING="`echo ${LINE}|awk -F\; '{print $3}'`"
        if [ "${STRING}" != "" ]; then
          ANSW="`echo ${WHATSTR}|egrep ${OPTION} \"${STRING}\"`"
        fi  # STRING
        if [ "${ANSW}" != "" ]; then
          BGCOLOR=${COLOR}
          echo "${BGCOLOR}" > ${TMPBGCOLOR}
        fi  # ANSW
      done  # COLORFILE
    fi  # WHATSTR
    BGCOLOR="`cat ${TMPBGCOLOR}`"

    echo "    <TD BGCOLOR=${BGCOLOR}><FONT FACE=\"verdana\" SIZE=\"${FONTSIZE}\" > <U><B>${WHERESTR}</B></U> <BR> ${WHATSTR}</FONT></TD>" >> ${PAGE}
  done  # DAY
# Last, unplanned TD
  BGCOLOR=white
  WHATSTR="`grep '0000w00' ${PLANFILE}|grep -v ^#|awk -F\; '{print $3}'`"
  if [ "${WHATSTR}" != "" ] ;then
    echo "    <TD BGCOLOR=${BGCOLOR}><FONT FACE=\"verdana\" SIZE=\"${FONTSIZE}\" >${WHATSTR}</FONT></TD>" >> ${PAGE}
  fi  # WHATSTR





done  # USER

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


echo "<BR>" >> ${PAGE}
# Legenda ------------------
echo "<TABLE BORDER=0 >" >> ${PAGE}
echo "  <TR>" >> ${PAGE}
echo "    <TD><FONT face= 'verdana' size=${FONTSIZE}>Color legenda</TD>" >> ${PAGE}
echo "    <TD><FONT face= 'verdana' size=${FONTSIZE}>(${HOSTNAME}:${COLORFILE})</TD>" >> ${PAGE}
echo "    <TD><FONT face= 'verdana' size=${FONTSIZE}>Last match:</TD>" >> ${PAGE}
echo "  </TR>" >> ${PAGE}
echo "</TABLE>" >> ${PAGE}

echo "<TABLE BORDER=0 >" >> ${PAGE}
echo "  <TR>" >> ${PAGE}
cat ${COLORFILE}|grep -v ^#|while read LINE
do
  COLOR="`echo ${LINE}|awk -F\; '{print $1}'`"
  OPTION="`echo ${LINE}|awk -F\; '{print $2}'`"
  STRING="`echo ${LINE}|awk -F\; '{print $3}'`"
  echo "    <TD BGCOLOR=${COLOR}><FONT face='verdana' size=${FONTSIZE}>${STRING} (${COLOR})</TD>" >> ${PAGE}
done  # cat
echo "  </TR>" >> ${PAGE}
echo "</TABLE>" >> ${PAGE}

echo "<BR>" >> ${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:Maarten.deBoer@Atos.net>Maarten de Boer</A> |Last Update: `date` produced by ${PGM} v${VER} at ${HOSTNAME} <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} ${TMPBGCOLOR}
exit 0

