
#!/bin/bash
# File	: ran-strip3.sh
# By	: MaartenDeBoer.nl, 181127, 231110
# Subject	: Script to create stiped (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.
#+ https://linuxconfig.org/generating-random-numbers-in-bash-with-examples
# From : ran-br1ck.sh
#(0.2),240817	: Mod: BORDERs, Added TD's
#(0.3),240819	: Changed better Horizontal stripes with colspan
PGM=`basename $0|cut -d\. -f1`
VER="0.3"
TMP="/tmp/${PGM}.$$"
HOSTNAME=`hostname | cut -d\. -f1`
RCFILE="${HOME}/etc/${PGM}.rc"
LCK="/tmp/${PGM}.lck"
TMP_PAGE="${TMP}.page"
BORDER_H=0
BORDER_1=1
BORDER_B=0

#PAGE="/var/www/vhosts/${PGM}.agrarix.it/html/index.html"
PAGE="/mnt/nas/WWW/domains/${PGM}.maartendeboer.nl/pages/index.html"

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

HDR_SIZE=10
HGT=10
TRMAX=120
TDMAX=180

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 ..."|tee -a ${LOG}
  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 "  BORDER_H=${BORDER_H}"
echo "  BORDER_1=${BORDER_1}"
echo "  BORDER_B=${BORDER_B}"
echo "  HDR_SIZE=${HDR_SIZE}"
echo "  HGT=${HGT}"
echo "  TRMAX=${TRMAX}"
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}

HDR_COLOR=${COLOR}
echo "  BGCOLOR=${BGCOLOR} COLOR=${COLOR}"

# Head
echo "<TABLE border=${BORDER_H} class=table-class1 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=${HDR_SIZE} color=${HDR_COLOR} face=Ariel>" >> ${TMP_PAGE}
echo "        <A HREF=${INFOPAGE}>[${PGM} info]</A>" >> ${TMP_PAGE}
echo "      </FONT>" >> ${TMP_PAGE}
echo "    </TD>" >> ${TMP_PAGE}
echo "  </TR>" >> ${TMP_PAGE}
echo "</TABLE>" >> ${TMP_PAGE}

# Body
echo "<TABLE border=${BORDER_1} class=table-class2 width='100%' cellpadding='0' cellspacing='0'>" >> ${TMP_PAGE}

# Lines (Rows, TR)
  echo "  <TR>" >> ${TMP_PAGE}
  TDCNT=0
  while [ ${TDCNT} -lt ${TDMAX} ]; 
  do
    TDCNT=`expr ${TDCNT} + 1`
    echo "      <TD BGCOLOR=${COLOR} height=${HGT} >" >> ${TMP_PAGE}
    echo -n "."
    echo "      </TD>" >> ${TMP_PAGE}
  done  # TD
  echo "  </TR>" >> ${TMP_PAGE}


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

  RAND_HEX_COLOR
  echo "${COLOR}" >> ${TMP}
# Check if COLOR is unique
  EC=0
# (mini)LOOP
  while [ ${EC} -eq 0 ];
  do
    RAND_HEX_COLOR
    grep ${COLOR} ${TMP}
    EC=${?}
#    echo "${COLOR}=${EC}"
  done  # = 0

# 1e Row color
#    R=$(( ${RANDOM} * 16 /32767 ))
  TDNR=$(( ${RANDOM} % ${TDMAX} + 1 ))

  TDSPAN1=`expr ${TDMAX} - ${TDNR}`
  TDSPAN2=`expr ${TDMAX} - ${TDSPAN1}`
  echo "TDNR=${TDNR} TDSPAN=${TDSPAN1} TDSPAN2=${TDSPAN2}"

  echo "      <TD BGCOLOR=${COLOR} height=${HGT} colspan=${TDSPAN1} >" >> ${TMP_PAGE}
  echo "      </TD>" >> ${TMP_PAGE}

#  TDCNT=0
#  while [ ${TDCNT} -lt ${TDMAX} ]; 
#  do
#    TDCNT=`expr ${TDCNT} + 1`
#    if [ ${TDNR} -eq ${TDCNT} ]; then

# New color
  RAND_HEX_COLOR
  echo "${COLOR}" >> ${TMP}
# Check if COLOR is unique
  EC=0
# (mini)LOOP
  while [ ${EC} -eq 0 ];
  do
    RAND_HEX_COLOR
    grep ${COLOR} ${TMP}
    EC=${?}
#    echo "${COLOR}=${EC}"
  done  # = 0

#    fi  # New color
#    echo -n "${TDCNT}"
#    echo "      <TD BGCOLOR=${COLOR} height=${HGT} >" >> ${TMP_PAGE}
#  done  # TD

  echo "      <TD BGCOLOR=${COLOR} height=${HGT} colspan=${TDSPAN2} >" >> ${TMP_PAGE}
  echo "      </TD>" >> ${TMP_PAGE}

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

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

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

# Bottom
echo "<TABLE border=${BORDER_B} class=table-class3 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}
cp ${TMP} /tmp/${PGM}.tmp
echo "  Writen to ${PAGE}"

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

