#!/bin/bash set -e SELF=`echo $0|sed -e 's/\.\///'` 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. FAILED WITH 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