Branching for libisoburn release 1.1.2
This commit is contained in:
115
libisoburn/branches/1.1.2/releng/run_all_releng
Executable file
115
libisoburn/branches/1.1.2/releng/run_all_releng
Executable file
@@ -0,0 +1,115 @@
|
||||
#!/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 explicitly
|
||||
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}
|
||||
echo -e "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" >> ${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}."
|
||||
|
||||
if [ "${1}" == "-cleanup" ]; then
|
||||
if [ -f "${CLOG}" ]; then rm -f "${CLOG}"; fi
|
||||
if [ -f "${CLOG}".prev ]; then rm -f "${CLOG}".prev; fi
|
||||
else
|
||||
E2=`date '+%s'`
|
||||
let ES="${E2} - ${E1}"
|
||||
printf " Total elapsed ${ES} sec."
|
||||
|
||||
#####
|
||||
printf "\n${SELF}: Std(out|err) logged in ${CLOG}."
|
||||
printf "\n${SELF}: Trivial log file examination:"
|
||||
printf "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\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:
|
||||
# thrown by xorriso and underlying libraries
|
||||
LIST_KWD="(NEVER|ABORT|FATAL|FAILURE|MISHAP|SORRY|WARNING|HINT|NOTE|DEBUG|ALL"
|
||||
# thrown by others
|
||||
LIST_KWD+="|FAIL|ERROR|WRONG)"
|
||||
|
||||
if [ -f "${CLOG}" ]; then
|
||||
set +e
|
||||
# lines, perl regex, leading tabs
|
||||
grep -n -PT "${LIST_KWD}" "${CLOG}"
|
||||
RET_GREP="$?"
|
||||
case ${RET_GREP} in
|
||||
0) # found
|
||||
;;
|
||||
1) # not found
|
||||
printf "\n${SELF}: Log file looks clear.\n"
|
||||
;;
|
||||
*) #
|
||||
printf "\n${SELF}: grep returned EXIT CODE: ${RET_GREP}.\n"
|
||||
;;
|
||||
esac
|
||||
set -e
|
||||
fi
|
||||
printf "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"
|
||||
|
||||
##### TODO: work out a less noisy diff'ing technique!
|
||||
if [ -f "${CLOG}".prev -a -f "${CLOG}" ]; then
|
||||
printf "${SELF}: See diff against previous log file (might be long):\n"
|
||||
printf "diff -Naur ${CLOG}.prev ${CLOG} | less"
|
||||
fi
|
||||
fi
|
||||
|
||||
printf "\n"
|
||||
|
||||
exit 0
|
Reference in New Issue
Block a user