1 # -*- shell-script -*- :mode=shellscript:
5 # timestop - report timing based on environment (cf. timestart.bash)
10 function show_times ()
12 local TIMES_START="$TIMES_RESULT"
14 local TIMES_STOP="$TIMES_RESULT"
20 local START=$(echo "$TIMES_START" | cut -d " " -f $KIND)
21 local STOP=$(echo "$TIMES_STOP" | cut -d " " -f $KIND)
23 local TIME=$(( $STOP - $START ))
24 eval "TIME${KIND}=$TIME"
26 local SECS=$(( $TIME % 60 ))
27 [ $SECS -lt 10 ] && SECS="0$SECS"
28 local MINUTES=$(( ($TIME / 60) % 60 ))
29 [ $MINUTES -lt 10 ] && MINUTES="0$MINUTES"
30 local HOURS=$(( $TIME / 3600 ))
33 [ "$KIND" = 1 ] && KIND_NAME="elapsed time"
34 [ "$KIND" = 2 ] && KIND_NAME="cpu time"
35 local RESULT="${HOURS}:${MINUTES}:${SECS} ${KIND_NAME}"
37 if [ -z "$TIMES_REPORT" ]; then
38 TIMES_REPORT="$RESULT"
40 TIMES_REPORT="$TIMES_REPORT, $RESULT"
43 if let "$TIME1 >= 5 && $TIME2 >= 5"
45 local FACTOR=$(( $TIME2 * 100 / $TIME1 ))
46 local FACTOR1=$(( $FACTOR / 100 ))
47 local FACTOR2=$(( $FACTOR % 100 ))
48 if let "$FACTOR2 < 10"; then FACTOR2="0$FACTOR2"; fi
49 TIMES_REPORT="$TIMES_REPORT, factor ${FACTOR1}.${FACTOR2}"
53 show_times # sets TIMES_REPORT
55 unset TIMES_RESULT get_times show_times