#!/bin/bash
# TLWWW teszt - lekerdezi a TLWWW-t
# Config:  /usr/share/tlwww/chktlwww[.dbname].cfg
 
. /usr/share/tlwww/tlwsetpar

WGETPAR="-T 15 -t 2 --save-headers"
OUTFILE="/tmp/.chktlwww$ext.out"
LOGFILE="/tmp/.chktlwww$ext.log"
# ERRFILE van: ha utoljara hiba volt, nincs: ha nem volt hiba.
ERRFILE="/tmp/.chktlwww$ext.err"
DEBUGFILE="/usr/share/tlwww/chktlwww-debug$ext"
unset HIBA
unset TLWWW_RUN

### Ha nincs config file, semmi
if [ ! -e /usr/share/tlwww/chktlwww$ext.cfg ]; then 
  echo "Nincs /usr/share/tlwww/chktlwww$ext.cfg"
  exit 0; 
fi
. /usr/share/tlwww/chktlwww$ext.cfg

# Ha nincs SITE, akkor semmi
if [ "$SITE" == "" ]; then 
  echo "chktlwww.cfg: SITE nincs megadva"
  exit 0; 
fi

# Ha soha semmit nem kell tenni, akkor semmi
if [ "$TODO" == "" -a "$TODO_OK" == "" ]; then 
  echo "chktlwww.cfg: TODO/TODO_OK nincs megadva"
  exit 0; 
fi

# Ebben az rban ne nezzuk.
if [ "$MENTESIDO" != "" ]; then
  if [ `date "+%H"` == $MENTESIDO ]; then
      exit 0
  fi
fi

# Nezzuk ...
rm -f $OUTFILE $LOGFILE

# Eloszor lekerdezzuk az 'elso dolgozo' rekordot.
if [ "$dbname" == "" ]; then
  CHKURL="$SITE/cgi-bin/tlwww.cgi?show=ad1"
else
  CHKURL="$SITE/cgi-bin/tlwww.cgi?db=$dbname&xdref=ad1"
fi
wget $WGETPAR "$CHKURL" -O $OUTFILE -o $LOGFILE
WGET_RET=$?

# TLWWW futsi eredmeny vizsglata
if [ $WGET_RET == 0 ]; then
  if [ ! -s $OUTFILE ]; then
      HIBA="TLWWW ures valasz, $OUTFILE nincs/ures"
  else
    grep -q "TLWWW program nem m" $OUTFILE
    GREP_RET=$?
    if [ $GREP_RET == 0 ]; then
       HIBA="TLWWW ($SITE) nem megy"
    # TLWWW ugy nez ki, mukodik
    else
     grep -E -q 'TextLib (srv.|szerver) nem el' $OUTFILE
     GREP_RET=$?
     # TLWWW szerint TLSRV nem megy
     if [ $GREP_RET == 0 ]; then
        HIBA="TLWWW ($SITE) megy, de TLSRV nem elerheto"
     else
        # TLWWW, TLSRV is megy, azt adja-e, amit kell?
        grep -q "Nem dok.*rekord" $OUTFILE
        GREP_RET=$?
        # Ez az, amikor minden jo volt...
        if [ $GREP_RET == 0 ]; then
           TLWWW_RUN=1
           HIBA="OK. TLWWW ($SITE) es TLSRV megy"
        else
           HIBA="TLWWW ($SITE) megy, de rossz valasz"
        fi
     fi
    fi
  fi
else
  HIBA="TLWWW ($SITE) nem megy - wget sikertelen ($WGET_RET)"
  # Ujabb vizsgalat: tlwww.cgi sajat maga valaszol-e?
fi

####### Mit is kell tenni?

# Kell, hogy a HIBA valtozot a TODO tudja hasznalni
. /usr/share/tlwww/chktlwww$ext.cfg

# Ha NEM megy a TLWWW rendesen
if [ "$TLWWW_RUN" != "1" ]; then
   # Van mit csinalni, es nem volt utoljara hiba
   if [ "$TODO" != "" -a ! -f $ERRFILE ]; then
       touch $ERRFILE 2> /dev/null
       if [ -e $DEBUGFILE ]; then
          . $DEBUGFILE $LOGFILE $OUTFILE $ERRFILE
       fi
       $TODO
       exit 1
   fi
# Ha megy a TLWWW ...
else
   # Van mit csinalni, es volt utoljara hiba
   if [ "$TODO_OK" != "" -a -f $ERRFILE ]; then
      rm -rf $ERRFILE 2> /dev/null
      $TODO_OK
      exit 1
   fi
fi

exit 0;
