
#!/bin/sh
# File	: upd_link-page.sh
# By	: MaartenDeBoer.nl, 180904
# Subject	: Script to update link-pages (like netapp.link / netapp.agrarix.com)
#(0.2)	: From upd_netapp-link.sh
#(0.3)	: Update --config & CONFIG(FILE), etc/ -> data/
#(0.4),181717	: Mod's
PGM=`basename $0|cut -d\. -f1`
VER="0.4"
LOG="${HOME}/log/${PGM}.log"
DATI=`date +%Y%m%d-%H%M%S`
RCFILE="${HOME}/etc/${PGM}.rc"

INDEXFILE="/var/www/vhosts/${CONFIG}.agrarix.com/html/index.html"
INITBGCOLOR="white"
INITCOLOR="black"
CONFIG="${PGM}.conf"
HEADFILE="${HOME}/data/${CONFIG}.head"
LINKSFILE="${HOME}/data/${CONFIG}.links"
MENUFILE="${HOME}/data/${CONFIG}.menu"
R_PICTURE=""
BORDER1=0
BORDER2=0
BORDER3=0
BORDER4=0
COL1WIDTH="30%"
LINK_PICTURE=""
LINK_HEIGHT=""
LINK_TEXT="Collection related links about:"

USAGE()
{
  echo "Usage: ${PGM} [<options>]"
  echo "  Version: ${VER}"
  echo "  options:"
  echo "    -c | --config  : change Config (${CONFIG}) in etc/ "
  echo "    -r | --rcfile  : change rcfile (${RCFILE}) in etc/ "
  echo "    -h | --help    : this help"
  echo "    -V             : Version"
  echo "    -x             : set -x"
}
while [ ${#} -ge 1 ]
  do
  case ${1} in
    -c | --config) CONFIG=${2}; shift ;;
    -r | --rcfile) RCFILE=${2}; shift ;;
    -h | --help) USAGE; exit 1 ;;
    -V) echo "${PGM}: v${VER}"; exit 3 ;;
    -x)  set -x ;;
    *)  echo "Option ${1} not known."; USAGE; exit 1 ;;
  esac
    shift
done

CONFIGFILE="${HOME}/etc/${PGM}.${CONFIG}"

if [ -f ${CONFIGFILE} ]; then
  echo "  Reading CONFIGfile (${CONFIGFILE}) ..."|tee -a ${LOG}
  . ${CONFIGFILE}
else
  echo "  NO CONFIGfile ($CONFIGFILE}) found. Exiting ..."|tee -a ${LOG}
  exit 2
fi  # RCFILE

BGCOLOR="${INITBGCOLOR}"
COLOR="${INITCOLOR}"
HEADFILE="${HOME}/data/${CONFIG}.head"
LINKSFILE="${HOME}/data/${CONFIG}.links"
MENUFILE="${HOME}/data/${CONFIG}.menu"

echo "`date` ${PGM} started."|tee -a ${LOG}
echo "BGCOLOR=${BGCOLOR}"
echo "BORDER1=${BORDER1}"
echo "BORDER2=${BORDER2}"
echo "BORDER3=${BORDER3}"
echo "BORDER4=${BORDER4}"
echo "CONFIG=${CONFIG}"
echo "HEADFILE=${HEADFILE}"
echo "BGCOLOR=${BGCOLOR}"
echo "COLOR=${COLOR}"
echo "INDEXFILE=${INDEXFILE}"
echo "LINKSFILE=${LINKSFILE}"
echo "MENUFILE=${MENUFILE}"
echo "R_PICTURE=${R_PICTURE}"
echo "COL1WIDTH=${COL1WIDTH}"
echo "LINK_PICTURE=${LINK_PICTURE}"
echo "LINK_HEIGHT=${LINK_HEIGHT}"
sleep 1

if [ ! -f ${LINKSFILE} ]; then
  echo "  Input (links-)file (${LINKSFILE}) NOT found. Exiting ..."|tee -a ${LOG}
  exit 2
fi

if [ ! -f ${INDEXFILE} ]; then
  echo "  Output (index-)file (${INDEXFILE}) NOT found. Exiting ..."|tee -a ${LOG}
  exit 3
fi

# Creating backup of index(INDEXFILE)file
cp ${INDEXFILE} ${INDEXFILE}_${DATI}

# Creating HEAD
echo "<!DOCTYPE HTML> " > ${INDEXFILE}
echo "<HTML> " >> ${INDEXFILE}
echo "  <HEAD> " >> ${INDEXFILE}
echo "  <META NAME='generator' content='Agrarix.IT:${PGM} v${VER}' /> " >> ${INDEXFILE}
if [ -f ${HEADFILE} ]; then
  cat ${HEADFILE} >> ${INDEXFILE}
fi
echo "  </HEAD> " >> ${INDEXFILE}
echo "<BODY aLink=red link=red vLink=red>" >> ${INDEXFILE}

# 1st TABLE
echo "<TABLE class='table2-class' border=${BORDER1} width='100%' id='table1' cellpadding='0' cellspacing='0'> " >> ${INDEXFILE}

# 1st (menu)row
if [ -f ${MENUFILE} ]; then
  echo "  Reading MENUFILE ..."|tee -a ${LOG}
  cat ${MENUFILE} >> ${INDEXFILE}
fi  # MENUFILE

# 2nd (menu)row
cat << EOT >> ${INDEXFILE}

  <tr>
    <td>
      <table class='table3-class' border=${BORDER3} width='100%' id='table3' cellspacing='0'>
        <tr>
          <td width='95%'>
            <table class='table4-class' border=${BORDER4} width='100%' id='table4' cellspacing='0'>

              <tr>
                <td height="50" width="${COL1WIDTH}" >
                  <img src="${LINK_PICTURE}" alt="${LINK_PICTURE}" align="middle" height="${LINK_HEIGHT}"> 
                  <font size='6' color=${BGCOLOR} face='Arial'> 
                    link(s):
                  </font>
                </td>
                <td bgcolor=white align='left'>
                  <font size='5' color=${BGCOLOR} face='Arial'> 
                    ${LINK_TEXT}
                  </font>
                </td>
             </tr>

EOT

ROWCNT=0
cat ${LINKSFILE}|sort|while read LINE
do
ROWCNT=`expr ${ROWCNT} + 1`
#echo  "${LINE}"
SUBJECT=`echo "${LINE}" | grep -v ^# |awk -F\; '{print $1}'`
URL=`echo "${LINE}" | grep -v ^# |awk -F\; '{print $2}'`
DESCRIPTION=`echo "${LINE}" | grep -v ^# |awk -F\; '{print $3}'`

echo "${SUBJECT}=${URL}=${DESCRIPTION}"

if [ "${SUBJECT}" != "" ]; then

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


echo "              <tr>" >> ${INDEXFILE}
echo "                <td bgcolor=${BGCOLOR2}>" >> ${INDEXFILE}
echo "                  <font size='5' color=black face='Arial'> " >> ${INDEXFILE}
if [ "${URL}" != "" ]; then
  echo "                    <a href='${URL}' target="_blank">${SUBJECT} </a>" >> ${INDEXFILE}
else
  echo "                    ${SUBJECT}" >> ${INDEXFILE}
  DESCRIPTION="NO link yet. If you know one, please <a href="mailto:${CONFIG}@agrarix.nl?subject=${CONFIG}-links">contact.</a>"
fi
echo "                  </font>" >> ${INDEXFILE}
echo "                </td>" >> ${INDEXFILE}
echo "                <td bgcolor=${BGCOLOR2}>" >> ${INDEXFILE}
echo "                  <font size='3' color=black face='Arial'> ${DESCRIPTION} " >> ${INDEXFILE}
echo "                  </font>" >> ${INDEXFILE}
echo "                </td>" >> ${INDEXFILE}
echo "              </tr>" >> ${INDEXFILE}

fi  # [ .. != "" ]

done  # while read LINE


# For last row
cat << EOT >> ${INDEXFILE}

            </table>
          </td>

          <td bgcolor=white>

          </td>
        </tr>
      </table>
    </td>
  </tr>

EOT

# Last row
cat << EOT >> ${INDEXFILE}

  <tr>
    <td bgcolor=${BGCOLOR} align='center'>
      <a href='//agrarix.it' target="_blank">
        <font size='1' color=${COLOR} face='Arial'> 
Presented by Agrarix IT
        </font>
      </a>
      <font color=${BGCOLOR} face='Arial'> 
        `date +%Y-%m-%d-%H-%M-%S`
      </font>

    </td>
  </tr>

EOT

# End of 1st table
echo "</TABLE>" >> ${INDEXFILE}
# table1
echo "</HTML>" >> ${INDEXFILE}

exit 0

