lib/scripts/timestop.bash
changeset 18318 deb87d7e44bc
child 18322 56554bb23eda
equal deleted inserted replaced
18317:bab988e37393 18318:deb87d7e44bc
       
     1 # -*- shell-script -*-
       
     2 # $Id$
       
     3 # Author: Makarius
       
     4 #
       
     5 # timestop - report timing based on environment (cf. timestart.bash)
       
     6 #
       
     7 
       
     8 TIMES_REPORT=""
       
     9 
       
    10 function show_times ()
       
    11 {
       
    12   local TIMES_START="$TIMES_RESULT"
       
    13   get_times
       
    14   local TIMES_STOP="$TIMES_RESULT"
       
    15   local KIND
       
    16   for KIND in 1 2 3
       
    17   do
       
    18     local START=$(echo "$TIMES_START" | cut -d " " -f $KIND)
       
    19     local STOP=$(echo "$TIMES_STOP" | cut -d " " -f $KIND)
       
    20 
       
    21     local TIME=$[ $STOP - $START ]
       
    22     local SECS=$[ $TIME % 60 ]
       
    23     [ $SECS -lt 10 ] && SECS="0$SECS"
       
    24     local MINUTES=$[ ($TIME / 60) % 60 ]
       
    25     [ $MINUTES -lt 10 ] && MINUTES="0$MINUTES"
       
    26     local HOURS=$[ $TIME / 3600 ]
       
    27 
       
    28     local KIND_NAME
       
    29     [ "$KIND" = 1 ] && KIND_NAME="elapsed time"
       
    30     [ "$KIND" = 2 ] && KIND_NAME="user"
       
    31     [ "$KIND" = 3 ] && KIND_NAME="system"
       
    32     local RESULT="${HOURS}:${MINUTES}:${SECS} ${KIND_NAME}"
       
    33 
       
    34     if [ -z "$TIMES_REPORT" ]; then
       
    35       TIMES_REPORT="$RESULT"
       
    36     else
       
    37       TIMES_REPORT="$TIMES_REPORT, $RESULT"
       
    38     fi
       
    39   done
       
    40 }
       
    41 
       
    42 show_times  # sets TIMES_REPORT
       
    43 
       
    44 unset TIMES_RESULT get_times show_times