
#!/bin/sh
# File	: chk_site-vers.sh
# By	: MaartenDeBoer, 2018-03-16
# Subject	: Script to check WP-websites & update webpage
#(0.2),180316	: Added URL at SITE
#(0.3),230505	: Some mod's
#(0.4),230519	: Copies from chk_websites
#(0.5),230522	: From chk_site-vers.sh Add BCK's
#(0.6),230531	: Added USAGE + CONFIG
PGM="`basename $0|cut -d\. -f1`"
VER="0.6"
TMP="/tmp/${PGM}.$$"
LOG="${HOME}/log/${PGM}.log"

PAGEDIR="/mnt/nas/WWW/domains/chk-wp-sites.agrarix.net/pages"
PAGE="${PAGEDIR}/index.html"
TITLE="${PGM}"
BORDER=""
CONFIG="${PGM}"
RCFILE="${HOME}/etc/${CONFIG}.rc"
SITES="${HOME}/etc/${PGM}.sites"

USAGE()
{
  echo "Usage: ${PGM} [<options>]"
  echo "  Version: ${VER}"
  echo "  options              :"
  echo "    -c | --config      : change Config (${CONFIG}) in etc/ "
  echo "    -d                 : create pageDir (${PAGEDIR})"
  echo "    -h | --help        : this help"
  echo "    -V                 : Version"
  echo "    -x                 : set -x"
}
if [ -f ${RCFILE} ]; then
  echo "  Reading RCfile (${RCFILE})"|tee -a ${LOG}
  . ${RCFILE}
fi
while [ ${#} -ge 1 ]
  do
  case ${1} in
    -c | --config) 
      CONFIG=${2}; 
      RCFILE="${HOME}/etc/${PGM}_${CONFIG}.rc"
      SITES="${HOME}/etc/${PGM}_${CONFIG}.sites"
      if [ -f ${RCFILE} ]; then
        echo "  Reading RCfile (${RCFILE})"|tee -a ${LOG}
        . ${RCFILE}
      else
        echo "  Config(RC)file (${RCFILE}) does NOT exist. Exiting ..."|tee -a ${LOG}
        exit 3
      fi
      shift 
      ;;
    -d) mkdir -p ${PAGEDIR} ;;
    -h | --help) USAGE; exit 1 ;;
    -V) echo "${PGM}: v${VER}"; exit 2 ;;
    -x)  set -x ;;
    *)  echo "Option ${1} not known."; USAGE; exit 1 ;;
  esac
    shift
done

echo "`date` ${PGM} v${VER} started."|tee -a ${LOG}
if [ ! -f ${SITES} ]; then
  echo "  File ${SITES} does NOT exist. Exiting ..."|tee -a ${LOG}
  exit 4
fi
if [ ! -d ${PAGEDIR} ]; then
  echo "  Pagedir ${PAGEDIR} does NOT exist (use option -d). Exiting ..."|tee -a ${LOG}
  exit 5
fi

touch ${TMP} ${PAGE}

echo "<HTML>" > ${PAGE}
echo "  <HEAD>" >> ${PAGE}
echo "    <TITLE> ${TITLE} </TITLE>" >> ${PAGE}
echo "    <META NAME=\"generator\" content=\"${PGM} v${VER}\"  />" >> ${PAGE}
echo "  </HEAD>" >> ${PAGE}
echo "  <BODY>" >> ${PAGE}

echo "<H2> ${TITLE} </H2>" >> ${PAGE}

echo "  <TABLE BORDER=${BORDER}>" >> ${PAGE}

echo "   <TR> " >> ${PAGE}
echo "    <TD><B>SITE</B></TD> " >> ${PAGE}
echo "    <TD><B>PHP v</B></TD> " >> ${PAGE}
echo "    <TD><B>WP v</B></TD> " >> ${PAGE}
echo "    <TD><B>rem BCK</B></TD> " >> ${PAGE}
echo "   </TR> " >> ${PAGE}

# ==== loop ===

cat ${SITES}|sort|grep -v ^#|grep ";"|while read LINE
do
  SITE_URL=`echo "${LINE}"|awk -F\; '{print $1}'`
  PHP_URL=`echo "${LINE}"|awk -F\; '{print $2}'`
  FTP_FILTER=`echo "${LINE}"|awk -F\; '{print $3}'`
  echo "  SITE_URL=${SITE_URL} PHP_URL=${PHP_URL} FTP_FILTER=${FTP_FILTER}"
  cp /dev/null ${TMP}.site
  WP_VER=""
  if [ "${SITE_URL}" != "" ]; then
    time -o ${TMP}.t wget -O ${TMP}.site ${SITE_URL} 
    GEN_STR=`grep generator ${TMP}.site|grep content`
    WP_V=`echo ${GEN_STR}|grep -i wordpress|awk -F\\" '{print $4}'|cut -d" " -f2`
    WP_VER=`echo ${WP_V}|sed 's/[A-z]//g'|sed 's/ //g'`
    VER_1=`echo ${WP_VER}|cut -d\. -f1`
    VER_2=`echo ${WP_VER}|cut -d\. -f1-2`
    echo "  GEN_STR=${GEN_STR} WP_V=${WP_V} WP_VER=${WP_VER} VER_1=${VER_1} VER_2=${VER_2}"
  else
    cp /dev/null ${TMP}.site
  fi
  PHP_VER=""
  PHP_VER1=""
  PHP_VER2=""
  if [ "${PHP_URL}" != "" ]; then
    time -o ${TMP}.t wget -O ${TMP}.php ${PHP_URL} 
    PHP_STR=`grep -i php ${TMP}.php|grep -i version|tail -1`
    PHP_VER=`echo ${PHP_STR}|cut -d\> -f5|cut -d\< -f1`
    PHP_VER1=`echo ${PHP_VER}|cut -d\. -f1`
    PHP_VER2=`echo ${PHP_VER}|cut -d\. -f1-2`
    echo "  PHP_STR=${PHP_STR} PHP_VER=${PHP_VER} PHP_VER1=${PHP_VER1} PHP_VER2=${PHP_VER2}"
sleep 1
  else
    cp /dev/null ${TMP}.php
  fi

  FTP_BCK_CNT=""
  if [ "${FTP_FILTER}" != "" ]; then
    FTP_BCK_CNT=`ls -1 ${FTP_FILTER}|wc -l`
  fi  # FTP_FILTER

# Colors
  PHP_BGC=""
  if [ "${PHP_VER2}" = "8.2" ]; then
    PHP_BGC="lightgreen"
  fi
  if [ "${PHP_VER2}" = "8.1" ]; then
    PHP_BGC="yellow"
  fi
  if [ "${PHP_VER2}" = "8.0" ]; then
    PHP_BGC="yellow"
  fi
  if [ "${PHP_URL}" != "" ] && [ "${PHP_VER1}" -lt 8 ]; then
    PHP_BGC="orange"
  fi

  SITE_BGC=""
  if [ "${VER_2}" = "6.2" ]; then
    SITE_BGC="lightgreen"
  fi
  if [ "${VER_2}" = "6.1" ]; then
    SITE_BGC="yellow"
  fi
  if [ "${VER_2}" = "6.0" ]; then
    SITE_BGC="yellow"
  fi
  if [ "${VER_1}" != "" ] && [ ${VER_1} -lt 6 ]; then
    SITE_BGC="orange"
  fi
  
  
  if [ "${SITE_URL}" != "" ]; then
    echo "   <TR> " >> ${PAGE}
    echo "    <TD> <A HREF=\"//${SITE_URL}\"> ${SITE_URL} </A> </TD> " >> ${PAGE}
    echo "    <TD BGCOLOR=${PHP_BGC}>${PHP_VER}</TD> " >> ${PAGE}
    echo "    <TD BGCOLOR=${SITE_BGC}>${WP_VER}</TD> " >> ${PAGE}
    echo "    <TD >${FTP_BCK_CNT}</TD> " >> ${PAGE}
    echo "   </TR> " >> ${PAGE}
  fi

done  # cat


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

echo "  <BR>" >> ${PAGE}

echo "<H6> Last update `date` ${PGM} v${VER} </H6>" >> ${PAGE}

echo "  </BODY>" >> ${PAGE}
echo "</HTML>" >> ${PAGE}

rm ${TMP}.site ${TMP}.php ${TMP}.t
exit 0

