#!/bin/bash
#
# do_tests
#
# Aufruf der einzelnen Testschritte fuers Logging
#
####################################################
#
ASEC=0
ANUM=1
FLUSH=1
NODATE=0
ND=""
#
while getopts fn:s:d? op
 do
  case "$op" in
    f) FLUSH=0;;
    s) ASEC=$OPTARG;;
    n) ANUM=$OPTARG;;
    d) NODATE=1
       ND="-d";;
    ?) echo "usage: `basename $0` [-f] [-s <secs>] [-n <num>] [-d] <test-list>"
       echo "  -f         kein flush_test_values"
       echo "  -s <secs>  Sekunden bis zur Wiederholung"
       echo "  -n <num>   Anzahl der Wiederholungen"
       echo "  -d         Jeder Test generiert eigenen Zeitstempel"
       exit 0;;
    *) echo "usage: `basename $0` [-f] [-s <secs>] [-n <num>] [-d] <test-list>"
       exit 0;;
  esac
done
shift $(( $OPTIND - 1))
#
if [[ $# -ne 1 ]]
 then
  echo "usage: `basename $0` [-f] [-s <secs>] [-n <num>] [-d] <test-list>"
  exit 1
fi
#
if [[ $ANUM -gt 1 && $ASEC -gt 0 ]]
 then
  (sleep $ASEC ; $0 $ND -s "$ASEC" -n $(( $ANUM - 1 )) "$1" )&
fi
#
cd `dirname $0`
PATH=/sbin:/usr/sbin:/usr/local/bin:$PATH
export PATH
LANG=C
export LANG
LC_ALL=C
export LC_ALL
#
if [[ $ASEC -gt 0 ]]
 then
  DTZ=`date '+%F %T%:z'`
else
  DTZ=`date '+%F %H:%M:00%:z'`
fi
#
while [[ $# -ge 1 ]]
 do
  if [[ -s "$1" ]]
   then
    grep -v '^ *#' "$1" | while read e p
     do
      if [[ -f $e ]]
       then
        if [[ "$NODATE" = "0" ]]
         then
          /bin/bash $e $p $DTZ </dev/null
        else
          /bin/bash $e $p </dev/null
        fi
      fi
    done
  fi
  shift
done
if [[ $FLUSH = 1 && $ANUM = 1 ]]
 then
  flush_test_values
fi
