#!/bin/bash
#
# test_web
#
# Es werden Web-Dienste aus /etc/uls/test_web.d auf
# Verfuegbarkeit und Dauer der Antwort getestet.
#
######################################################
#
WDIR="$(dirname $0)"
#
unset D S H P W
C=/etc/uls/test_web.d
SLEEP=0.1
#
while getopts c:d:h:SPs:w:? op; do
  case "$op" in
    d) D="-d $OPTARG";;
    c) C="$OPTARG";;
    h) H="-h $OPTARG";;
    P) P=1;;
    S) S="-S";;
    s) SLEEP="$OPTARG";;
    w) W="-w $OPTARG";;
    *) echo "usage: $(basename $0) [-PS] [-w <wait>] [-s <sleep>] [-h <host>] [-d <path>] [-c <conf>]"
       echo "  -P        : Tests nacheinander ausführen
  -S        : Daten ungepuffert an ULS senden
  -w <wait> : vor dem curl Aufruf <wait> Sekunden warten
  -s <sleep>: zwischen den einzelnen Tests <sleep> Sekunden warten
  -h <host> : ULS-Hostname, wenn in den Konfigurationen nicht angegeben
  -d <path> : Pfad zum Zwischenspeichern der ULS-Daten
  -c <conf> : Pfad zum Direktory mit den einzelnen Konfigurationen"
       exit 1;;
  esac
done
shift $(( $OPTIND - 1 ))
#
#
if [[ $# -lt 2 ]]; then
  DT="`date '+%F %T%:z'`"
else
  DT="$1 $2"
fi
#
if [[ -d "$C" ]]; then
  if [[ -n "$P" ]]; then
    for f in "$C"/*.conf; do
      if [[ -f "$f" ]]; then
        "$WDIR"/test_web_single $W $H $D $S "$f" $DT
      fi
    done
  else
    for f in "$C"/*.conf; do
      if [[ -f "$f" ]]; then
        "$WDIR"/test_web_single $W $H $D $S "$f" $DT &
        sleep $SLEEP
      fi
    done
    wait
  fi
fi
