
#!/bin/bash
# File	: ran-bl0ck.sh
# By	: MaartenDeBoer.nl, 181127, 231110
# Subject	: Script to create block (web)page with randomized colors
#
# RANDOM Each time this parameter is referenced, a random integer between
#              0 and 32767 is generated.  The sequence of random numbers may be
#              initialized by assigning a value to RANDOM.  If RANDOM is unset,
#              it  loses  its  special  properties,  even if it is subsequently
#              reset.
#(0.2),231211	: Mod's
PGM=`basename $0|cut -d\. -f1`
VER="0.2"
TMP="/tmp/${PGM}.$$"
HOSTNAME=`hostname | cut -d\. -f1`
RCFILE="${HOME}/etc/${PGM}.rc"
LCK="/tmp/${PGM}.lck"
TMP_PAGE="${TMP}.page"
BORDER=0

PAGE="/var/www/vhosts/${PGM}.agrarix.it/html/index.html"

INFOPAGE="info/"
# page-refresh-time in sec.
# '<meta http-equiv="refresh"
PAGE_REFRESH=60

HGT=10
TRMAX=80
TDMAX=80

RAND_HEX_COLOR()
{
  FORS="1 2 3 4 5 6"
  for F in ${FORS}
  do
    R=$(( ${RANDOM} * 16 /32767 ))
    case ${R} in
      0) H[${F}]="0" ;;
      1) H[${F}]="1" ;;
      2) H[${F}]="2" ;;
      3) H[${F}]="3" ;;
      4) H[${F}]="4" ;;
      5) H[${F}]="5" ;;
      6) H[${F}]="6" ;;
      7) H[${F}]="7" ;;
      8) H[${F}]="8" ;;
      9) H[${F}]="9" ;;
      10) H[${F}]="A" ;;
      11) H[${F}]="B" ;;
      12) H[${F}]="C" ;;
      13) H[${F}]="D" ;;
      14) H[${F}]="E" ;;
      15) H[${F}]="F" ;;
    esac
#      echo -n "(${F}) ${H[${F}]}"
  done  # for
  COLOR="#${H[1]}${H[2]}${H[3]}${H[4]}${H[5]}${H[6]}"
#    echo "${COLOR} ... "
}

echo "`date`: Start ${PGM} v${VER}"
if [ -f ${LCK} ]; then
  echo "  LOCK-file (${LCK}) found. Exiting ..."
  exit 2
fi
if [ -f ${RCFILE} ]; then
  echo "  Using RCfile (${RCFILE}) ... "
  . ${RCFILE}
fi
if [ ! -f ${PAGE} ]; then
  echo "  NO PAGE (${PAGE}) found. Exiting ..."|tee -a ${LOG}
  exit 3
fi
echo "  HGT=${HGT}"
echo "  TRMAX=${TRMAX}"
echo "  TDMAX=${TDMAX}"
echo "  PAGE=${PAGE}"
sleep 1

touch ${LCK} ${TMP} ${TMP_PAGE}

echo "<HTML>" > ${TMP_PAGE}
echo "<BODY>" >> ${TMP_PAGE}
echo "<meta http-equiv=\"refresh\" content=\"${PAGE_REFRESH}\" /> " >> ${TMP_PAGE}
echo "<meta name=\"generator\" content=\"${PGM} v${VER}\" /> " >> ${TMP_PAGE}

echo "</BODY>" >> ${TMP_PAGE}

RAND_HEX_COLOR
BGCOLOR=${COLOR}
echo "${COLOR}" >> ${TMP}
RAND_HEX_COLOR
echo "${COLOR}" >> ${TMP}

echo "  BGCOLOR=${BGCOLOR} COLOR=${COLOR}"
#
echo "<TABLE border=${BORDER} width='100%' cellpadding='0' cellspacing='0'>" >> ${TMP_PAGE}
echo "  <TR>" >> ${TMP_PAGE}
echo "    <TD BGCOLOR=${BGCOLOR} HEIGHT=${HGT} align=center>" >> ${TMP_PAGE}
echo "      <FONT size=${R_SIZE} color=${COLOR} face=Ariel>" >> ${TMP_PAGE}
echo "        <A HREF=${INFOPAGE}>[Ran-block info]</A>" >> ${TMP_PAGE}
echo "      </FONT>" >> ${TMP_PAGE}
echo "    </TD>" >> ${TMP_PAGE}
echo "  </TR>" >> ${TMP_PAGE}
echo "</TABLE>" >> ${TMP_PAGE}

echo "<TABLE border=${BORDER} width='100%' cellpadding='0' cellspacing='0'>" >> ${TMP_PAGE}

# Lines (Rows, TR)
# 1st LOOP
TRCNT=0
while [ ${TRCNT} -lt ${TRMAX} ]; 
do
  TRCNT=`expr ${TRCNT} + 1`
  echo "  <TR>" >> ${TMP_PAGE}
  echo "  TRCNT=${TRCNT}"
  TDCNT=0

# 2nd LOOP
  while [ ${TDCNT} -lt ${TDLINES} ]; 
  do
    TDCNT=`expr ${TDCNT} + 1`

# Check if COLOR is unique
    EC=0
# 3rd (mini)LOOP
    while [ ${EC} -eq 0 ]; 
    do
      RAND_HEX_COLOR
      grep ${COLOR} ${TMP}
      EC=${?}
#      echo "${COLOR}=${EC}"
    done
    echo "${COLOR}" >> ${TMP}
#    echo "    <TD BGCOLOR=${COLOR} height=${R_HGT}>" >> ${TMP_PAGE}
    echo "      <TD BGCOLOR=${COLOR} height=${HGT}>" >> ${TMP_PAGE}

    echo "    </TD>" >> ${TMP_PAGE}

  done  # while TDCNT

  echo "  </TR>" >> ${TMP_PAGE}
done  # while TRCNT

echo "</TABLE>" >> ${TMP_PAGE}

echo "<TABLE border=${BORDER} width='100%' cellpadding='0' cellspacing='0'>" >> ${TMP_PAGE}
echo "  <TR>" >> ${TMP_PAGE}
echo "    <TD BGCOLOR=white align=center>" >> ${TMP_PAGE}
echo "      <FONT size=1 color=black face=Ariel>" >> ${TMP_PAGE}
echo "        `date` @ ${HOSTNAME} (${VER}) " >> ${TMP_PAGE}
echo "  [ TRMAX=${TRMAX} TDMAX=${TDMAX} HGT=${HGT} ]" | tee -a ${TMP_PAGE}
echo "      </FONT>" >> ${TMP_PAGE}
echo "    </TD>" >> ${TMP_PAGE}
echo "  </TR>" >> ${TMP_PAGE}
echo "</TABLE>" >> ${TMP_PAGE}

echo "</HTML>" >> ${TMP_PAGE}

cp ${TMP_PAGE} ${PAGE}

rm ${LCK} ${TMP} ${TMP_PAGE}
echo "`date`: Done"
exit 0

