#!/bin/bash set -e SELF=$(basename "$0") GEN_DATA_DIR=releng_generated_data CLOG=${GEN_DATA_DIR}/log.${SELF} 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 ${SELF} runs executables from CWD starting with releng_*. stdout/stderr output stored in ${CLOG} ${SELF} -rc [-keep] ${SELF} -cleanup HLP exit 101 fi ######################################################## if [ -f "${CLOG}" ]; then mv "${CLOG}" "${CLOG}".prev fi > ${CLOG} DSTART=`date --utc` printf "\n${SELF}: Started at ${DSTART}" E1=`date '+%s'` # require ^releng_, avoid running (your)self explcitly for s in `ls | grep ^releng_ | grep -v ${SELF} | sort -n`; do if [ -x ${s} -a ! -d ${s} ]; then # tee(1) does trailing \n, which is unwanted in that case printf "\n${SELF}: Running ./${s} ${PASSED_OPTIONS}..." echo -e "\n${SELF}: Running ./${s} ${PASSED_OPTIONS}..." >> ${CLOG} T1=`date '+%s'` set +e ./${s} ${PASSED_OPTIONS} &>> ${CLOG} 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${SELF}: Stopped at ${DEND}.\n" if [ "${1}" == "-cleanup" ]; then rm -f "${CLOG}" else E2=`date '+%s'` let ES="${E2} - ${E1}" printf "\n${SELF}: Total time elapsed ${ES} sec." ##### TODO: work out a less noisy diff'ing technique! #if [ -f "${CLOG}".prev -a -f "${CLOG}" ]; then # printf "\n${SELF}: Log diff follows:\n" # diff -Naur "${CLOG}".prev "${CLOG}" #fi ##### printf "\n${SELF}: Std(out|err) logged in ${CLOG}." printf "\n${SELF}: Log file examination follows:\n" # severity classes of libdax_msgs.h in libburn and libisofs # List of boring keywords: # 'UPDATE' A pacifier message during long running operations. # List of interesting keywords: LIST_KWD="(NEVER|ABORT|FATAL|FAILURE|MISHAP|SORRY|WARNING|HINT|NOTE|DEBUG|ALL)" if [ -f "${CLOG}" ]; then grep -n -PT "${LIST_KWD}" "${CLOG}" fi fi exit 0