#!/bin/bash
. /etc/sysconfig/autoport
. /usr/share/autodist/webbuild-functions

NUM=`echo "$QUERY_STRING" | sed -n 's/^.*NUM=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
HOST=`echo "$QUERY_STRING" | sed -n 's/^.*HOST=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
REP=`echo "$QUERY_STRING" | sed -n 's/^.*REP=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
AS_HOST=`echo "$QUERY_STRING" | sed -n 's/^.*AS_HOST=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
SHOWLOG=`echo "$QUERY_STRING" | sed -n 's/^.*SHOWLOG=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
SHOWINDEX=`echo "$QUERY_STRING" | sed -n 's/^.*SHOWINDEX=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
LINES=`echo "$QUERY_STRING" | sed -n 's/^.*LINES=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
FORMAT=`echo "$QUERY_STRING" | sed -n 's/^.*FORMAT=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`
FULL=`echo "$QUERY_STRING" | sed -n 's/^.*FULL=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"`

function resolve_logname() {
   local l=$1
   local jobname=$2

   unset SUBJOBNAME OPERATIONNAME OPERATIONSTATUS

   SUBJOBNAME=`echo $l | sed "s|.*/${jobname}_\(.*\)\..*|\1|"`
   [ "${SUBJOBNAME:0:1}" = "_" ] && SUBJOBNAME=$l
   [ "$SUBJOBNAME" = "$l" ] && SUBJOBNAME=`echo $l | sed "s|.*/\(.*\)\..*|\1|"`
   SUBJOBNAME=${SUBJOBNAME/__*}
   [ "${BUILDOPERATION[$b]}" ] && \
      OPERATIONNAME=${BUILDOPERATION[$b]} || OPERATIONNAME=`echo $l | sed "s|\(.*\)/.*/.*|\1|"`
   [ "${BUILDOPERATIONSTATUS[$b]}" ] && \
      OPERATIONSTATUS=${BUILDOPERATIONSTATUS[$b]} || OPERATIONSTATUS=`echo $l | sed "s|.*/\(.*\)/.*|\1|"`
}

[ ! "$FORMAT" ] && FORMAT=html

[ "$LINES" ] || LINES=5

[ "$HOST" ] || HOST=0
[ "$AS_HOST" ] || AS_HOST=0

[ "$AS_HOST" -a "$HOST" != "0" ] && HOST_ADD="&HOST=$HOST"

if [ "$AS_HOST" = "0" -a "$FORMAT" = "xml" ]; then
   echo -e "Content-type: text/xml\nPragma: no-cache\n"
   echo -n "<autodist><output><![CDATA["
   RELOADTIME=3600000
else
   echo -e "Content-type: text/html; charset=UTF-8\n"
fi

if [ "$SHOWINDEX" ]; then
   echo "Host $AS_HOST:"
   for i in `seq 0 ${#AUTOPORT_ARCH[*]}`; do
      [ "${AUTOPORT_ARCH[$i]}" ] || continue
      [ "${AUTOPORT_DISABLE[$i]}" -a "${AUTOPORT_DISABLE[$i]}" != "0" ] && continue

      RNUM=-1
      for r in ${AUTOPORT_REPOSITORIES[$i]}; do
         RNUM=`expr $RNUM + 1`
         if [ "${AUTOPORT_UPDATE[$i]}" ]; then
            echo "<a href=\"?NUM=$i&REP=$RNUM$HOST_ADD\">$r(${AUTOPORT_ARCH[$i]})</a>&nbsp;"
         elif [ "${AUTOPORT_CHROOT[$i]}" ]; then
            echo "<a href=\"?NUM=$i&REP=$RNUM$HOST_ADD\">$r(${AUTOPORT_ARCH[$i]})</a>&nbsp;"
         elif [ "${AUTOPORT_NATIVE[$i]}" ]; then
            echo "<a href=\"?NUM=$i&REP=$RNUM$HOST_ADD\">$r(${AUTOPORT_ARCH[$i]})</a>&nbsp;"
         elif [ "${AUTOPORT_CROSS[$i]}" ]; then
            echo "<a href=\"?NUM=$i&REP=$RNUM$HOST_ADD\">$r(${AUTOPORT_CROSS[$i]};${AUTOPORT_ARCH[$i]})</a>&nbsp;"
         fi
      done
   done
   echo "<br>"
   exit 0
elif [ "$AS_HOST" = "0" ]; then
   echo "Show: [<a href=\"?NUM=\">All hosts</a>] [<a href=\"?SHOWLOG=monitor\">Build hosts monitor</a>]<br>"
   for h in `seq 0 ${#AUTOPORT_CGI_HOST[*]}`; do
      curl --connect-timeout 20 "${AUTOPORT_CGI_HOST[$h]}?AS_HOST=$h&SHOWINDEX=1" 2>/dev/null
   done
   echo "<hr>"
fi

[ ! "$SHOWLOG" -a "$HOST" = "$AS_HOST" ] && echo "<h2>Host: `hostname -s` (`uname -m`, kernel `uname -r`)</h2>"

if [ "$SHOWLOG" -a "$HOST" != "$AS_HOST" ]; then
   curl "${AUTOPORT_CGI_HOST[$HOST]}?AS_HOST=$HOST&SHOWLOG=$SHOWLOG&NUM=$NUM&REP=$REP&LOG=$LOG&FULL=$FULL" 2>/dev/null
else

for i in `seq 0 ${#AUTOPORT_ARCH[*]}`; do
   if [ "$SHOWLOG" = "monitor" ]; then
   echo "<h2>Build hosts monitor</h2>"
      icecream-monitor $ICECREAM_MONITOR_HOST listcs | \
      while read line; do
        [ "${line:0:8}" = "200 done" ] && printon=
        if [ "$printon" ]; then
           set -- $line
           case $2 in
              \(*) echo "<b>$line</b><br>" ;;
              *) echo "$line<br>" ;;
           esac
        fi
        [ "${line:0:6}" = "listcs" ] && printon=1
      done
      echo "<br>"
      RELOADTIME=15000
      break
   fi
 RNUM=-1
 for r in ${AUTOPORT_REPOSITORIES[$i]}; do
   [ "${AUTOPORT_ARCH[$i]}" ] || continue
   [ "${AUTOPORT_DISABLE[$i]}" -a "${AUTOPORT_DISABLE[$i]}" != "0" ] && continue
   RNUM=`expr $RNUM + 1`
   LOGDIR=`environment_logdir $i`
   AUTOPORTLOGDIR=`environment_autoport_logdir $i`
   ENVROOTDIR=`environment_rootdir $i`
   
   if [ "${AUTOPORT_UPDATE[$i]}" ]; then
      LOGFILE="$LOGDIR/autodist.log"
      LASTLOGFILE="$LOGDIR/autodist-last.log"
      STATEFILE="$LOGDIR/autoupdate-current"
      LASTSTATEFILE="$LOGDIR/autoupdate-last"
   elif [ "${AUTOPORT_CHROOT[$i]}" ]; then
      LOGFILE="/var/autodist/log/autoport-chroot-$r-${AUTOPORT_CHROOT[$i]}.log"
      LASTLOGFILE="/var/autodist/log/autoport-chroot-$r-${AUTOPORT_CHROOT[$i]}-last.log"
      AUTODISTLOGFILE="$AUTOPORTLOGDIR/${AUTOPORT_ARCH[$i]}/$r-current.log"
      AUTODISTSTATEFILE="$AUTOPORTLOGDIR/autoport-$r-current"
   elif [ "${AUTOPORT_NATIVE[$i]}" ]; then
      LOGFILE="/var/autodist/log/autoport-native-$r-${AUTOPORT_ARCH[$i]}.log"
      LASTLOGFILE="/var/autodist/log/autoport-native-$r-${AUTOPORT_ARCH[$i]}-last.log"
      AUTODISTLOGFILE="$AUTOPORTLOGDIR/${AUTOPORT_ARCH[$i]}/$r-current.log"
      AUTODISTSTATEFILE="$AUTOPORTLOGDIR/autoport-$r-current"
   elif [ "${AUTOPORT_CROSS[$i]}" ]; then
      LOGFILE="$LOGDIR/autoport-cross-$r-${AUTOPORT_CROSS[$i]}.log"
      LASTLOGFILE="$LOGDIR/autoport-cross-$r-${AUTOPORT_CROSS[$i]}-last.log"
   else
      continue
   fi
   if [ "$SHOWLOG" ]; then
      if [ "$HOST" = "$AS_HOST" -a "$NUM" = "$i" -a "$REP" = "$RNUM" ]; then
         echo -n "<p><h2>$SHOWLOG log in "
         if [ "${AUTOPORT_UPDATE[$i]}" ]; then
            echo -n "update"
         elif [ "${AUTOPORT_CHROOT[$i]}" ]; then
            echo -n "${AUTOPORT_CHROOT[i]} chroot"
         elif [ "${AUTOPORT_NATIVE[$i]}" ]; then
            echo -n "native"
         elif [ "${AUTOPORT_CROSS[$i]}" ]; then
             echo -n "cross"
         fi
         echo " environment for ${AUTOPORT_ARCH[$i]}"
         [ "${SHOWLOG}" = "current" -o "${SHOWLOG}" = "last" -a ! "${AUTOPORT_UPDATE[$i]}" ] && echo -n " ($r)"
         echo -n ":</h2>"
         cat << _EOF
<div class="downloadbox" align="center">
  <div class="output outputbox">
_EOF
         echo -n "<pre><code>"
         if [ "$SHOWLOG" = "current" ]; then
            RELOADTIME=3600000
            cat $LOGFILE | parse_build_output
         elif [ "$SHOWLOG" = "last" ]; then
            cat $LASTLOGFILE | parse_build_output
            LASTLOGDETAILS=`tail $LASTLOGFILE | grep "See .* for details" | sed "s|.*See \(.*\) for details.*|\1|"`
            cat $ENVROOTDIR/$LASTLOGDETAILS | parse_build_output
         else
            # Security check
            [ "${SHOWLOG/\/\.}" != "${SHOWLOG}" ] && continue
            BUILDLOGDIR="$LOGDIR"
            if [ "${SHOWLOG/\/ok\/}" != "${SHOWLOG}" -o "${SHOWLOG/\failed\/}" != "${SHOWLOG}" ]; then
               SHOWLOGPKG=${SHOWLOG/*\/}
               [ "${SHOWLOGPKG}" ] || continue
               echo "<table style=\"color:black;width:auto;\"><tr><td colspan=3>Last ${SHOWLOGPKG} logs:</td>"
               for t in prepare update build install send; do
                  echo -n "<tr><td>$t:</td><td>"
                  [ -e ${BUILDLOGDIR}${t}/ok/${SHOWLOGPKG} ] && echo -n "<td><a style=\"color:green;text-decoration:none\" target=_autodist href=\"?NUM=$i&REP=$RNUM$HOST_ADD&SHOWLOG=${t}/ok/${SHOWLOGPKG}\">OK</a></td>" || echo "<td></td>"
                  [ -e ${BUILDLOGDIR}${t}/failed/${SHOWLOGPKG} ] && echo -n "<td><a style=\"color:green;text-decoration:none\" target=_autodist href=\"?NUM=$i&REP=$RNUM$HOST_ADD&SHOWLOG=${t}/failed/${SHOWLOGPKG}\">FAILED</a></td>" || echo "<td></td>"
                  echo "</tr>"
               done
               echo "</table>"
            fi
            if [ -r ${BUILDLOGDIR}${SHOWLOG} ]; then
               LOGFILESIZE=`stat -c %s ${BUILDLOGDIR}${SHOWLOG}`
               LOGDATE=`stat -c %y ${BUILDLOGDIR}${SHOWLOG}`
               echo -n "<b>${SHOWLOG} ($LOGDATE; $LOGFILESIZE):</b>"
               if [ $LOGFILESIZE -lt 2097152 -o "$FULL" != "" ]; then
                  cat ${BUILDLOGDIR}${SHOWLOG} | parse_build_output
               else
                  head -c 1048576 ${BUILDLOGDIR}${SHOWLOG} | parse_build_output
                  echo "<br><font style=\"background-color:yellow;color:black\">&lt;------ CUT (long file) ------&gt;</font>"
                  tail -c 1048576 ${BUILDLOGDIR}${SHOWLOG} | parse_build_output
               fi
            fi
         fi
         echo -n "</pre></code>"
         echo -n "</div></div>"
#         break
      fi
      [ "${AUTOPORT_UPDATE[$i]}" ] && break
   elif [ ! "$SHOWLOG" ]; then
      RELOADTIME=600000
      [[ "$NUM" && "$NUM" != "$i" ]] && continue
      [[ "$HOST" = "$AS_HOST" ]] || continue
      if [ "${AUTOPORT_UPDATE[$i]}" ]; then
         echo "<b>* <a target=_autodist href=\"?NUM=$i&REP=$RNUM&HOST=$AS_HOST\">$r</a>(${AUTOPORT_ARCH[$i]}) (type:autodist update)"
         echo " [ <a target=_autodist href=\"?SHOWLOG=current&NUM=$i&REP=$RNUM$HOST_ADD\">log</a> <a target=_autodist href=\"?SHOWLOG=last&NUM=$i&REP=$RNUM$HOST_ADD\">last</a> ]</b>"
      fi

      if [ "${AUTOPORT_CHROOT[$i]}" ]; then
         echo "<b>* <a target=_autodist href=\"?NUM=$i&REP=$RNUM&HOST=$AS_HOST\">$r</a>(${AUTOPORT_ARCH[$i]}) (type:chroot autoport</a> chroot:${AUTOPORT_CHROOT[$i]})"
         echo " [ <a target=_autodist href=\"?SHOWLOG=current&NUM=$i&REP=$RNUM$HOST_ADD\">log</a> <a target=_autodist href=\"?SHOWLOG=last&NUM=$i&REP=$RNUM$HOST_ADD\">last</a> ]</b>"
      fi

      if [ "${AUTOPORT_NATIVE[$i]}" ]; then
         echo "<b>* <a target=_autodist href=\"?NUM=$i&REP=$RNUM&HOST=$AS_HOST\">$r</a>(${AUTOPORT_ARCH[$i]}) (type:native autoport)"
         echo " [ <a target=_autodist href=\"?SHOWLOG=current&NUM=$i&REP=$RNUM$HOST_ADD\">log</a> <a target=_autodist href=\"?SHOWLOG=last&NUM=$i&REP=$RNUM$HOST_ADD\">last</a> ]</b>"
      fi

      if [ "${AUTOPORT_CROSS[$i]}" ]; then
         echo "<b>* <a target=_autodist href=\"?NUM=$i&REP=$RNUM&HOST=$AS_HOST\">cross-platform</a> autoport (arch:${AUTOPORT_CROSS[$i]})</b>"
         echo " [ <a target=_autodist href=\"?SHOWLOG=current&NUM=$i&REP=$RNUM$HOST_ADD\">last</a> ]</b>"
      fi
      cat << _EOF
      <div class="downloadbox" align="center">
        <div align="left" class="showlogbox">
_EOF
      echo -n "<pre style='margin:1px;word-wrap:normal;white-space:pre;'>"
      unset BUILDNOWIDX BUILDLOG BUILDNOW BUILDNOWSTATUS SCHEDULED STARTTIME AUTODIST_PID ENDTIME
      if [ "${AUTOPORT_UPDATE[$i]}" ]; then
         BUILDNOWIDX=0
         STARTTIME=`head $LOGFILE | grep "%% Autodist started" | sed "s|.* @ ||"`
         AUTODIST_PID=`head $LOGFILE | grep "%% Autodist started" | sed "s|.*PID \([0-9]*\) .*|\1|"`
         SCHEDULED=`head $LOGFILE | grep "%% autoupdate jobs:" | sed "s|.*autoupdate jobs: ||"`
         ENDTIME=`tail $LOGFILE | grep "%% All jobs done @" | sed "s|.*@ ||"`
         while read line; do
            set -- $line
            for c in `seq 0 ${#BUILDNOW[*]}`; do
               if [ "${BUILDNOW[c]}" = "$1" ]; then
                  BUILDNOWIDX=$c
                  break
               else
                  BUILDNOWIDX=$c
               fi
            done
            BUILDNOW[$BUILDNOWIDX]="$1"
            [ "$4" ] && BUILDLOG[$BUILDNOWIDX]="${BUILDLOG[$BUILDNOWIDX]} `echo $4 | sed "s|.*autodist/log/||"`"
#            BUILDLOG[$BUILDNOWIDX]="${BUILDLOG[$BUILDNOWIDX]} $2/$3/$1.i586"
            BUILDNOWSTATUS[$BUILDNOWIDX]=$3
            BUILDNOWIDX=`expr $BUILDNOWIDX + 1`
         done < $STATEFILE
      else
         STARTTIME=`head $LOGFILE | grep "^+ .*start at " | sed "s|.*start at ||"`
#         AUTODIST_PID=`head $LOGFILE | grep "%% Autodist started" | sed "s|.*PID \([0-9]*\) .*|\1|"`
         SCHEDULED=`head -n 40 $LOGFILE | grep -m 1 "^> .*Scheduled jobs: " | sed "s|.*Scheduled jobs: ||"`
         ENDTIME=`tail $LOGFILE | grep "^- .*end at " | sed "s|.*end at ||"`
         if [ -e "$AUTODISTSTATEFILE" ]; then
            while read line; do
               set -- $line
               for c in `seq 0 ${#BUILDNOW[*]}`; do
                  if [ "${BUILDNOW[c]}" = "$1" ]; then
                     BUILDNOWIDX=$c
                     break
                  else
                     BUILDNOWIDX=$c
                  fi
               done
               BUILDNOW[$BUILDNOWIDX]="$1"
               if [ "$4" ]; then
                  BUILDLOG[$BUILDNOWIDX]="${BUILDLOG[$BUILDNOWIDX]} `echo $4 | sed "s|.*/log/||"`"
               else
                  if [ "$2" = "port" ]; then
                     CURRLOGFILE=build/$3/$1.${AUTOPORT_ARCH[$i]}
                  else
                     CURRLOGFILE=$2/$3/$1.${AUTOPORT_ARCH[$i]}
                  fi
                  BUILDLOG[$BUILDNOWIDX]="${BUILDLOG[$BUILDNOWIDX]} $CURRLOGFILE"
               fi
#               BUILDLOG[$BUILDNOWIDX]="${BUILDLOG[$BUILDNOWIDX]} $2/$3/$1.i586"
               BUILDNOWSTATUS[$BUILDNOWIDX]=$3
               BUILDNOWIDX=`expr $BUILDNOWIDX + 1`
            done < $AUTODISTSTATEFILE
            for p in `dirname $LOGFILE`/current.*; do
               CURRENT_FILE=`basename $p`
               AUTODIST_PID=${p/*.}
               grep "autodist" /proc/$AUTODIST_PID/status &>/dev/null && break
               AUTODIST_PID=
            done
         fi
      fi
      [ "$STARTTIME" ] && echo "<b>Start:</b> $STARTTIME"
      [ "$SCHEDULED" ] && echo "<b>Scheduled jobs:</b> $SCHEDULED"
      LASTJOBNAME=
      for b in `seq 0 ${#BUILDNOW[*]}`; do
#         set -- ${BUILDNOW[$b]}
         JOBNAME=${BUILDNOW[$b]}
         [ "$JOBNAME" ] || continue
         if [ "$JOBNAME" != "$LASTJOBNAME" ]; then
            [ "$LASTJOBNAME" -a "$JOBNAME" ] && echo
            if [ "${BUILDLOG[$b]}" ]; then
               resolve_logname ${BUILDLOG[$b]/* } $JOBNAME
               if [ "${OPERATIONSTATUS}" = "ok" ]; then
                  WEBBUILD_APPEND="&LOGSTATUSOK=true"
               else
                  WEBBUILD_APPEND="&LOGSTATUSOK=false"
               fi
               echo -n "<a target=_webbuild href=\"$AUTOPORT_WEBBUILD_HOST?REQUEST=autobuildedit&ENVIRONMENT=$i&PACKAGE=$JOBNAME&LOGTYPE=$OPERATIONNAME${WEBBUILD_APPEND}\"><b>$JOBNAME</b></a>: "
            else
               echo -n "<a target=_webbuild href=\"$AUTOPORT_WEBBUILD_HOST?ENVIRONMENT=$i&PACKAGE=$JOBNAME\"><b>$JOBNAME</b></a>: "
            fi
         fi
         rowcnt=0
         if [ "${BUILDLOG[$b]}" ]; then
            for l in ${BUILDLOG[$b]}; do
               resolve_logname $l $JOBNAME
#               if [ $rowcnt -ge 4 ]; then
#                  echo
#                  rowcnt=0
#               fi
               case $OPERATIONNAME-$OPERATIONSTATUS in 
                  build-ok|send-ok|install-ok|retryinstall-ok)
                     echo -n "<a target=_autodist href=\"?SHOWLOG=$l&NUM=$i&REP=$RNUM$HOST_ADD\">$OPERATIONNAME:$OPERATIONSTATUS</a>"
                     ;;
                  update-failed|autoupdate-failed)
                     if [ "${BUILDNOWSTATUS[$b]}" = "4" ]; then
                        echo -n "<a target=_autodist href=\"?SHOWLOG=$l&NUM=$i&REP=$RNUM$HOST_ADD\"><font color=green>$OPERATIONNAME:up-to-date</font></a>"
                     elif [ "${BUILDNOWSTATUS[$b]}" = "3" ]; then
                        echo -n "<a target=_autodist href=\"?SHOWLOG=$l&NUM=$i&REP=$RNUM$HOST_ADD\"><font color=darkgoldenrod>$OPERATIONNAME:unknown</font></a>"
                     elif [ "${BUILDNOWSTATUS[$b]}" = "2" ]; then
                        echo -n "<a target=_autodist href=\"?SHOWLOG=$l&NUM=$i&REP=$RNUM$HOST_ADD\"><font color=darkgoldenrod>$OPERATIONNAME:newer</font></a>"
                     else
                        echo -n "<a target=_autodist href=\"?SHOWLOG=$l&NUM=$i&REP=$RNUM$HOST_ADD\"><font color=red>$OPERATIONNAME:$OPERATIONSTATUS</font></a>"
                     fi
                     ;;
                  *-ok) echo -n "<a target=_autodist href=\"?SHOWLOG=$l&NUM=$i&REP=$RNUM$HOST_ADD\"><font color=black>$OPERATIONNAME:$OPERATIONSTATUS</font></a>"
                     ;;
                  *)
                     echo -n "<a target=_autodist href=\"?SHOWLOG=$l&NUM=$i&REP=$RNUM$HOST_ADD\"><font color=red>$OPERATIONNAME:$OPERATIONSTATUS</font></a>"
                     ;;
               esac
#               [ "$SUBJOBNAME" != "$JOBNAME" ] && echo -en "(<a href=\"$AUTOPORT_WEBBUILD_HOST?ENVIRONMENT=$i&PACKAGE=$SUBJOBNAME\" target=\"webbuild\">$SUBJOBNAME</a>)"
               echo -n " "
               rowcnt=`expr $rowcnt + 1`
            done
         fi
         if [[ $b -eq $BUILDNOWIDX-1 && ! "$ENDTIME" ]]; then
            echo -n "<font color=green>${BUILDOPERATION[$b]}(in progress...)</font>"
         fi
         LASTJOBNAME=$JOBNAME
      done
      [ "$LASTJOBNAME" ] && echo
      if [ "$ENDTIME" ]; then
         echo "<b>End:</b> $ENDTIME"
      elif [ "$AUTODIST_PID" ]; then
         echo "<b>End: <a target=_autodist href=\"?SHOWLOG=current.$AUTODIST_PID&NUM=$i&REP=$RNUM$HOST_ADD\">in progress</a></b>"
      fi
      echo
#      grep -v "^=" $LOGFILE | tail -n "$LINES" | sed "s|.*\r||"
#      echo
      echo "</pre></div></div>"
   fi
 done
done

# only root host (0) calls other hosts
if [ "$AS_HOST" = "0" -a ! "$SHOWLOG" ]; then
   for h in `seq 1 ${#AUTOPORT_CGI_HOST[*]}`; do
      WBHOSTURL=`echo ${AUTOPORT_CGI_HOST[$h]} | sed "s|^\(http[s]*://[^/]*\).*$|\1|"`
      if [ "$WBHOSTURL" ]; then
         curl -m1 -s -I ${WBHOSTURL} >/dev/null || continue
         if [ "$NUM" -a "$HOST" = "$h" ]; then
            curl "${AUTOPORT_CGI_HOST[$h]}?AS_HOST=$h&LINES=$LINES&NUM=$NUM&REP=$RNUM&HOST=$HOST" 2>/dev/null
         elif [ ! "$NUM" ]; then
            curl "${AUTOPORT_CGI_HOST[$h]}?AS_HOST=$h&LINES=$LINES" 2>/dev/null
         fi
      fi
   done
fi
fi
if [ "$AS_HOST" = "0" ]; then
   echo "<p><i>Generated by autodist CGI interface. Last update: `date`</i>"
   if [ "$FORMAT" = "xml" ]; then
      echo -n "]]></output>"
      [ "$RELOADTIME" ] && echo -n "<reloadtime>$RELOADTIME</reloadtime>"
      echo "</autodist>"
   fi
fi