Merge pull request #2836 from kumpera/cwt_toggleref
[mono.git] / scripts / ci / run-step.sh
1 #!/bin/bash -e
2 TIMEOUTCMD=`dirname "${BASH_SOURCE[0]}"`/babysitter
3 export MONO_BABYSITTER_LOG_FILE=babysitter_report.json_lines
4
5 helptext ()
6 {
7     echo "run-step.sh {--label=LABEL} {--skip|--timeout=TIMEOUT [--fatal]} command to run with arguments"
8 }
9
10 for i in "$@"
11 do
12 case $i in
13     --help)
14     helptext
15     exit 0
16     ;;
17     --label=*)
18     LABEL="${i#*=}"
19     shift # past argument=value
20     ;;
21     --timeout=*)
22     TIMEOUT="${i#*=}"
23     shift # past argument=value
24     ;;
25     --fatal)
26     FATAL="true"
27     shift # past argument
28     ;;
29     --skip)
30     SKIP="true"
31     shift # past argument
32     ;;
33     *)
34             # unknown option, assume just part of cmdline
35     ;;
36 esac
37 done
38 if [ -n "${SKIP}" ] && [ -z "${LABEL}" ]
39     then helptext
40     exit 1
41 fi
42 if [ -n "${SKIP}" ]
43     then echo -e "*** start: ${LABEL}\n*** end(0): ${LABEL}: \e[45mSkipped\e[0m"
44     exit 0
45 fi
46 if [ -z "${LABEL}" ] || [ -z "${TIMEOUT}" ]
47     then helptext
48     exit 1
49 fi
50 STARTTIME=`date +%s`
51 echo "*** start: ${LABEL}"
52 if [ -n "${FATAL}" ]; then
53     ${TIMEOUTCMD} --signal=ABRT --kill-after=60s ${TIMEOUT} $@ && echo -e "*** end($(echo $(date +%s) - ${STARTTIME} | bc)): ${LABEL}: \e[42mPassed\e[0m" || (echo -e "*** end($(echo $(date +%s) - ${STARTTIME} | bc)): ${LABEL}: \e[41mFailed\e[0m" && exit 1)
54 else
55     ${TIMEOUTCMD} --signal=ABRT --kill-after=60s ${TIMEOUT} $@ && echo -e "*** end($(echo $(date +%s) - ${STARTTIME} | bc)): ${LABEL}: \e[42mPassed\e[0m" || echo -e "*** end($(echo $(date +%s) - ${STARTTIME} | bc)): ${LABEL}: \e[43mUnstable\e[0m"
56 fi