
#!/bin/bash
# File	: upd_scripts-site.sh
# By	: Maarten.deBoer, 160914, 170504
# Subject	: Script to update the scripts website
#(0.3),180118	: Updates
#(0.4),180215	: Update with cp SCRIPTSDIR PAGEDIR
#(0.5),181105	: PRUGE 1st
#(0.6),181105	: Adding mailing empty Subject || Author (By)
#(0.7),181106	: Added VER to the page
#(0.8),181106	: Added "# Description" & "# Author"
#(0.9),181106	: Added "row" marking
PGM="`basename $0|cut -d\. -f1`"
VER="0.9"
TMP="/tmp/${PGM}.$$.asc"
LOG="${HOME}/log/${PGM}.log"
UP_DATI=`date +%Y-%m-%d-%H-%M-%S`
MAIL=1
MAILTO="maarten.deboer@atos.net"
ROWCNT=0

PURGE=1
# Nr of files to be kept after purge.
PURGECNT=5

SCRIPTSDIR="${HOME}/mailed-scripts"
PAGEDIR="/var/www/html/scripts"
PAGE="${PAGEDIR}/index.html"
TITLE="scripts site"

echo "`date` ${PGM} ${VER} started."|tee -a ${LOG}
touch ${TMP}

sudo touch ${PAGE}
sudo chmod 777 ${PAGE}

echo "<!DOCTYPE html>" > ${PAGE}
echo "<HTML>" >> ${PAGE}
echo "<HEAD>" >> ${PAGE}
echo "<META charset='UTF-8'>" >> ${PAGE}
echo "<META name='author' content='Maarten de Boer' />" >> ${PAGE}
echo "<META name='author' content='Maarten de Boer' />" >> ${PAGE}
echo "<META name='generator' content='${PGM} v${VER}' />">> ${PAGE}
echo "<META name='up-dati' content='${UP_DATI}' />">> ${PAGE}
echo "<TITLE>${TITLE}</TITLE>" >> ${PAGE}
echo "<basefont face='verdana'>" >> ${PAGE}
echo "</HEAD>" >> ${PAGE}
echo "<BODY aLink=red bgColor=#D3D0D3 link=red text=#000000 vLink=red>" >> ${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='8'> <B>${TITLE}</B> </FONT>" >> ${PAGE}
echo "    <BR>" >> ${PAGE}
echo "    <DIV align=left>" >> ${PAGE}
echo "    <FONT COLOR=white face='verdana' size='-1'>Source via mail: <A HREF="mailto:nl19471@nlxmss04.bcklan.ao-srv.com?SUBJECT=scripts:\'scriptname\' ">nl19471@nlxmss04.bcklan.ao-srv.com with subject=scripts:'scriptname' </A> (updated 4x /day). </FONT> " >> ${PAGE}
echo "    <FONT COLOR=white face='verdana' size='-1'>At Linux: <B> cat script.sh | mailx -s 'scripts:script.sh' nl19471@nlxmss04.bcklan.ao-srv.com </B> </FONT> " >> ${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 2016 </B> </FONT>" >> ${PAGE}
echo "    </DIV>" >> ${PAGE}
echo "  <TD>" >> ${PAGE}
echo "</TR>" >> ${PAGE}
echo "</TABLE>" >> ${PAGE}

echo "<TABLE BORDER=0 WIDTH='100%'>" >> ${PAGE}
echo "  <TR>" >> ${PAGE}
echo "    <TD>" >>  ${PAGE}
echo "      <FONT COLOR=black face='verdana' size='2'><B>Script</FONT>" >> ${PAGE}
echo "    </TD>" >>  ${PAGE}
echo "    <TD>" >>  ${PAGE}
echo "      <FONT COLOR=black face='verdana' size='2'><B>(^VER=)</FONT>" >> ${PAGE}
echo "    </TD>" >>  ${PAGE}
echo "    <TD>" >>  ${PAGE}
echo "      <FONT COLOR=black face='verdana' size='2'><B>Subject (^# Subject|^# Description)</FONT>" >> ${PAGE}
echo "    </TD>" >>  ${PAGE}
echo "    <TD>" >>  ${PAGE}
echo "      <FONT COLOR=black face='verdana' size='2'><B>Author (^# By|^# Author) </FONT>" >> ${PAGE}
echo "    </TD>" >>  ${PAGE}
echo "  </TR>" >> ${PAGE}

cd ${SCRIPTSDIR}

echo "  PURGing 1st ..."
ls -1 *|while read LINE
do
# Purge
  if [ ${PURGE} ]; then
    SCRIPTNAME=`echo ${LINE} |cut -d\. -f1`
    SCRIPTEXT=`echo ${LINE} |cut -d\. -f2|cut -d\_ -f1`
    FNAME="${SCRIPTNAME}"
    FILECNT=`ls -1r ${FNAME}.*|wc -l`
    REMOVECNT=`expr ${FILECNT} - ${PURGECNT}`
    echo -n "."
#    echo "FILECNT=${FILECNT} REMOVECNT=${REMOVECNT}"
    if [ ${REMOVECNT} -gt 0 ]; then
      ls -1r ${FNAME}.*|tail -${REMOVECNT}| while read RMNAME REST
      do
        echo "  Removing ${RMNAME} ..."|tee -a ${LOG}
        rm -f ${RMNAME}
      done  # RMNAME
    fi  # -gt 0
  fi  # PURGE

done  # ls -1

echo ""
echo "  Updating WEB-page ..."
ls -1 *|while read LINE
do
  ROWCNT=`expr ${ROWCNT} + 1`
#  echo ${LINE}
  echo -n "."
  cp ${SCRIPTSDIR}/${LINE} ${PAGEDIR}
  chmod +r ${PAGEDIR}/${LINE}

  SUBJ="`egrep '^# Subject|^# Description' ${LINE}|cut -d\: -f2|head -1`"
  BY="`egrep '^# By|^# Author' ${LINE}|cut -d\: -f2|head -1`"
  VER="`egrep '^VER=' ${LINE}|cut -d\= -f2|sed 's/\"//g'|head -1`"

if [ $((ROWCNT%2)) -eq 0 ]; then
# Even
  BGCOLOR2="lightgrey"
else
# Odd
  BGCOLOR2="#F0F0F0"
fi

  echo "  <TR>" >> ${PAGE}
  echo "    <TD BGCOLOR=${BGCOLOR2}>" >>  ${PAGE}
  echo "      <FONT COLOR=blue face='verdana' size='2'>" >> ${PAGE}
  echo "        <A HREF=${LINE}>${LINE}</A>" >>  ${PAGE}
  echo "      </FONT>" >> ${PAGE}
  echo "    </TD>" >>  ${PAGE}
  echo "    <TD BGCOLOR=${BGCOLOR2}>" >>  ${PAGE}
  echo "      <FONT COLOR=black face='verdana' size='2'>" >> ${PAGE}
  echo "        ${VER}" >>  ${PAGE}
  echo "      </FONT>" >> ${PAGE}
  echo "    </TD>" >>  ${PAGE}
  echo "    <TD BGCOLOR=${BGCOLOR2}>" >>  ${PAGE}
  echo "      <FONT COLOR=black face='verdana' size='2'>" >> ${PAGE}
  echo "        ${SUBJ}" >>  ${PAGE}
  echo "      </FONT>" >> ${PAGE}
  echo "    </TD>" >>  ${PAGE}
  echo "    <TD BGCOLOR=${BGCOLOR2}>" >>  ${PAGE}
  echo "      <FONT COLOR=black face='verdana' size='2'>" >> ${PAGE}
  echo "        ${BY}" >>  ${PAGE}
  echo "      </FONT>" >> ${PAGE}
  echo "    </TD>" >>  ${PAGE}
  echo "  </TR>" >> ${PAGE}

  if [ "${SUBJ}" = "" ]; then
    echo "File ${LINE} has NO Subject (# Subject)"| tee -a ${TMP}
  fi
  if [ "${BY}" = "" ]; then
    echo "File ${LINE} has NO Author(# By)"| tee -a ${TMP}
  fi

done  # ls -1

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` [${PGM} v${VER}] <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}

# If MAIL & Info in TMP-file , then mail
if [ ${MAIL} ] && [ -s ${TMP} ]; then
  echo "Missing Subject and/or Author, see attached file"| mailx -a ${TMP} -s "Missing Subject and / or Author [${PGM} v${VER}]" ${MAILTO}
  echo "  Mailed info to ${MAILTO}"|tee -a ${LOG}
fi


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

