#!/bin/bash

set -e

SELF=$(basename "$0")
CLOG1=log.$SELF.1
CLOG2=log.$SELF.2

> ${CLOG1}
> ${CLOG2}

PASSED_OPTIONS=""

if   [ "${1}" == "-cleanup" ]; then
 PASSED_OPTIONS="-cleanup"
elif [ "${1}" == "-rc" -a "${2}" == "-keep" ]; then
 PASSED_OPTIONS="-rc -keep"
elif [ "${1}" == "-rc" ]; then
 PASSED_OPTIONS="-rc"
else
cat << HLP
 $0: $0 -rc [-keep]
 $0: $0 -cleanup
HLP
 exit 0
fi

main() {
#
DSTART=`date --utc`
printf "\n$0: Started at ${DSTART}"
E1=`date '+%s'`
# require ^releng_, avoid running (your)self explcitly
for s in `ls | grep ^releng_ | grep -v ${SELF} | sort`; do
 if [ -x ${s} -a ! -d ${s} ]; then
   printf "\n$0: Running ./${s} ${PASSED_OPTIONS}..."
   T1=`date '+%s'`
   set +e
   ./${s} ${PASSED_OPTIONS} 1>>${CLOG1} 2>>${CLOG2}
   RET=$?
   T2=`date '+%s'`
   let TS="${T2}-${T1}"
   case ${RET} in
        0)
          printf "done in ${TS} sec. ok."
          ;;
        *)
          printf "done in ${TS} sec. FAIL. EXIT CODE: $RET;"
          ;;
   esac
   set -e
 fi
done

DEND=`date --utc`
printf "\n$0: Finished at ${DEND}.\n"
E2=`date '+%s'`
let ES="${E2}-${E1}"
printf "\n$0: Total time elapsed ${ES} sec."
printf "\n$0: Results saved in ${CLOG1} and ${CLOG2}.\n\n"

#
exit 0
}

#
main