
#!/bin/bash
# File	: maartendeboer.nl
# 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.
PGM=`basename $0|cut -d\. -f1`
VER="0.1"
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/ran-block.agrarix.it/html/index.html"

#PAGE="/mnt/nas/www/domains/ran-d0m.agrarix.net/pages/index.html"
#TDMIN=2
INFOPAGE="info/"
# page-refresh-time in sec.
# '<meta http-equiv="refresh"
PAGE_REFRESH=60

MAX_HGT=10
TRMAX=80
TDMAX=80

MAXTRSIZE=`expr ${MAX_HGT} \* ${TRMAX}`
# TRSIZE = TRLINES x HGTX
#TRSIZE=0

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
touch ${LCK} ${TMP} ${TMP_PAGE}

if [ -f ${RCFILE} ]; then
  echo "  Using RCfile (${RCFILE}) ... "
  . ${RCFILE}
fi
HGT=${MAX_HGT}
echo "  MAX_HGT=${MAX_HGT}"
echo "  TRMAX=${TRMAX}"
echo "  TDMAX=${TDMAX}"
sleep 1

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}

# Random Height (1-MAX_R_HGT)
#R_HGT=$(( ${RANDOM} * ${MAX_R_HGT} /32767 + 1 ))


# 1st row
## Random 0-15(F)
#R=$(( ${RANDOM} * 16 /32767 ))
## Change from Dec -> Hex
#case ${R} in
#  0) H="0" ;;
#  1) H="1" ;;
#  2) H="2" ;;
#  3) H="3" ;;
#  4) H="4" ;;
#  5) H="5" ;;
#  6) H="6" ;;
#  7) H="7" ;;
#  8) H="8" ;;
#  9) H="9" ;;
#  10) H="A" ;;
#  11) H="B" ;;
#  12) H="C" ;;
#  13) H="D" ;;
#  14) H="E" ;;
#  15) H="F" ;;
#esac
#
#if [ ${R} -lt 8 ]; then
#  COLOR="white"
#else
#  COLOR="black"
#fi
#BGCOLOR="${H}${H}${H}${H}${H}${H}"

#R_SIZE=$(( ${RANDOM} * 40 /32767 ))
##echo "  BGCOLOR=${BGCOLOR} COLOR=${COLOR} R_HGT=${R_HGT} R_SIZE=${R_SIZE}"

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
TRSIZE=0
TRCNT=0
while [ ${TRSIZE} -lt ${MAXTRSIZE} ]; 
do
  TRCNT=`expr ${TRCNT} + 1`
  echo "  <TR>" >> ${TMP_PAGE}
  echo "  TRCNT=${TRCNT}"
#
# Cols (TD's)
  TDLINES=${TDMAX}

#  TDLINES=0
#  while [ ${TDLINES} -lt ${TDMIN} ];
#  do
#    TDLINES=$(( ${RANDOM} * ${TDMAX} /32767 ))
#  done

#  R_HGT=$(( ${RANDOM} * ${MAX_R_HGT} /32767 + 1 ))
  TRSIZE=$(( ${TRSIZE} + ${HGT} ))
#  echo "  TRSIZE=${TRSIZE} TDLINES=${TDLINES} R_HGT=${R_HGT}"
  TDCNT=0

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

# 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}

## If Height > 5 then new table    
#    if [ ${R_HGT} -gt 10 ]; then
#      TA2LINES=$(( ${RANDOM} * 10 /32767 + 1 ))
##      TA2LINES=$(( ${RANDOM} * ${R_HGT} /32767 + 1 ))
#      TA2CNT=0
## 3rd LOOP
#      while [ ${TA2CNT} -lt ${TA2LINES} ]; 
#      do
#        TA2CNT=`expr ${TA2CNT} + 1`
#
#        echo "      <TABLE border=${BORDER} width='100%' cellpadding='0' cellspacing='0'>" >> ${TMP_PAGE}
#
#        echo "        <TR>" >> ${TMP_PAGE}
#
#        TD2LINES=$(( ${RANDOM} * 10 /32767 + 1 ))
#        TD2CNT=0
#        R2_HGT=$(( ${RANDOM} * ${TDMAX} /32767 + 1 ))
##        TRSIZE=$(( ${TRSIZE} + ${R2_HGT} ))
##        echo "  TD2LINES=${TD2LINES}"
#        while [ ${TD2CNT} -lt ${TD2LINES} ]; 
#        do
#          TD2CNT=`expr ${TD2CNT} + 1`
#
## Check if COLOR is unique
#    EC=0
#    while [ ${EC} -eq 0 ]; 
#    do
#      RAND_HEX_COLOR
#      grep ${COLOR} ${TMP}
#      EC=${?}
##      echo "${COLOR}=${EC}"
#    done
#    echo "${COLOR}" >> ${TMP}
#
#          echo "          <TD BGCOLOR=${COLOR} height=${R2_HGT}>" >> ${TMP_PAGE}
#          echo "          </TD>" >> ${TMP_PAGE}
#        done  # TD2's
#
#        echo "        </TR>" >> ${TMP_PAGE}
#        echo "      </TABLE>" >> ${TMP_PAGE}
#
#      done  # TA2's
#
      echo "    </TD>" >> ${TMP_PAGE}
#    fi  # R_HGT > 10

  done  # while TDCNT

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


  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} MAX_HGT=${MAX_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

