You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
1.8 KiB
81 lines
1.8 KiB
#!/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." |
|
printf "\n${SELF}: stdout&stderr saved in ${CLOG}.\n" |
|
|
|
# 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 |
|
|
|
fi |
|
|
|
exit 0
|
|
|