#!/bin/sh
# Aufruf: Scriptname Suchbegriff
# Wolfgang Sander-Beuermann, 30.07.1996

# Variablen-Definitionen:
lynxClient=/usr/bin/lynx        # anpassen an eigenen PATH
schleife=10                     # definiert max. Antwortzeit

# Aufruf der lynx-Clients:

# AltaVista:
($lynxClient -source "http://www.altavista.digital.com/\
cgi-bin/query?pg=q&what=web&fmt=.&q=${1}" & ) > tmp1.$$.html

# HotBot:
($lynxClient -source "http://www.hotbot.com/search.html?_v=1.0&OP=0&SM=MC&MT=${1}&SW=&\
MOD=0&date=WH&DR=newer&DM=1&DD=1&DY=96&DV=10&DU=years&smiley=&\
RD=AN&RG=NA&domain=&DC=10&FJA=off&FJS=off&FRA=off&FAC=off&FSW=off&\
FVR=off&FSU=off&FSM=off&OP=0&MOD=0" &) > tmp2.$$.html

# Lycos:
($lynxClient -source "http://www.lycos.com/cgi-bin/pursuit?${1}" & )  > tmp3.$$.html

# Yahoo:
($lynxClient -source "http://search.yahoo.com/bin/search?p=${1}" & )  > tmp4.$$.html

# Webcrawler:
($lynxClient -source 
"http://query.webcrawler.com/cgi-bin/WebQuery?text=${1}&output=summaries" &)  > tmp5.$$.html

# Excite:
($lynxClient -source "http://www.excite.com/search.gw?search=${1}" &) > tmp6.$$.html

# Infoseek:
($lynxClient -source "http://guide-p.infoseek.com/\
Titles?qt=${1}&col=WW&sv=N1" &) > tmp7.$$.html

# Magellan:
($lynxClient -source "http://www.mckinley.com/searcher.cgi?query=${1}" &) > tmp8.$$.html

# Volltext-Suche per Harvest ueber alle WWW-Server der Uni-Hannover:
($lynxClient -source "http://www-cache.rrzn.uni-hannover.de/Harvest/cgi-bin/\ BrokerQuery.pl.cgi?query=${1}&host=www-cache%3A9601&caseflag=on&wordflag=on&errorflag=0&\
opaqueflag=on&descflag=on&verbose=on&maxresultflag=20" &) > tmp9.$$.html

# Volltext-Suche per Harvest ueber alle de.*-Newsgruppen:

($lynxClient -source "http://www-cache.rrzn.uni-hannover.de/\
Harvest/cgi-bin/BrokerQuery.pl.cgi?\
query=${1}&host=www-cache.rrzn.uni-hannover.de%3A10601&caseflag=on&wordflag=on&errorflag=0&\
opaqueflag=on&descflag=on&verbose=on&maxresultflag=20" &) > tmp10.$$.html

sleep 2

# Jobueberwachung:

n=0
while [ $n -lt $schleife ] # max. $schleife Schleifendurchlaeufe (=$schleife*10 sec)
do
   sleep 10
   a=`ps -eaf | grep $lynxClient | grep $LOGNAME | grep -v grep | grep -v meta`
   if [ "xxx$a" != xxx ]   # Test, ob noch lynx-Clients laufen
   then
      n=`expr "$n" + 1`    # Schleifenzaehler
      echo $n
   else                    # Ausstieg, wenn alle lynx-Clients terminiert sind
      cat tmp1.$$.html tmp2.$$.html tmp3.$$.html tmp4.$$.html tmp5.$$.html \
      tmp6.$$.html tmp7.$$.html tmp8.$$.html tmp9.$$.html tmp10.$$.html > tmp.html
      postproc             # Postprocessor aufrufen
      exit
   fi
done


# Ausstieg, wenn das von $schleife gesetzte Zeitlimit ueberschritten ist:
# noch laufende lynx-Clients killen:
for p in `ps -eaf|grep $lynxClient|grep $LOGNAME|grep -v grep|grep -v meta|awk '{print $2}'`
do
  kill $p 2>/dev/null 1>&2
done


# Postprocessor aufrufen:
cat tmp1.$$.html tmp2.$$.html tmp3.$$.html tmp4.$$.html tmp5.$$.html \
 tmp6.$$.html tmp7.$$.html tmp8.$$.html tmp9.$$.html tmp10.$$.html > tmp.html
postproc

