Again, some progress bar optimisation.
author"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Wed May 09 13:11:04 2007 +0000 (2007-05-09)
changeset 82a1c93f975268
parent 81 a20be197429a
child 83 286b5a6938ac
Again, some progress bar optimisation.
scripts/crosstool.sh
scripts/functions
     1.1 --- a/scripts/crosstool.sh	Tue May 08 20:41:08 2007 +0000
     1.2 +++ b/scripts/crosstool.sh	Wed May 09 13:11:04 2007 +0000
     1.3 @@ -37,28 +37,7 @@
     1.4  CT_TestOrAbort "Configuration file not found. Please create one." -f "${CT_TOP_DIR}/.config"
     1.5  . "${CT_TOP_DIR}/.config"
     1.6  
     1.7 -# The progress bar indicator is asked for
     1.8 -if [ "${CT_LOG_PROGRESS_BAR}" = "y" ]; then
     1.9 -    _CT_PROG_BAR_DATE() {
    1.10 -        local str=`CT_DoDate +%s`
    1.11 -        local elapsed=$((str-(CT_STAR_DATE/(1000*1000*1000))))
    1.12 -        printf "[%02d:%02d]" $((elapsed/60)) $((elapsed%60))
    1.13 -    }
    1.14 -    _CT_PROG_BAR() {
    1.15 -        [ ${CT_PROG_BAR_CPT} -eq 0  ] && echo -en "\r`_CT_PROG_BAR_DATE` /"
    1.16 -        [ ${CT_PROG_BAR_CPT} -eq 10 ] && echo -en "\r`_CT_PROG_BAR_DATE` -"
    1.17 -        [ ${CT_PROG_BAR_CPT} -eq 20 ] && echo -en "\r`_CT_PROG_BAR_DATE` \\"
    1.18 -        [ ${CT_PROG_BAR_CPT} -eq 30 ] && echo -en "\r`_CT_PROG_BAR_DATE` |"
    1.19 -        CT_PROG_BAR_CPT=$(((CT_PROG_BAR_CPT+1)%40))
    1.20 -    }
    1.21 -    CT_PROG_BAR_CPT=0
    1.22 -    CT_PROG_BAR=_CT_PROG_BAR
    1.23 -    export -f _CT_PROG_BAR
    1.24 -else
    1.25 -    CT_PROG_BAR=
    1.26 -fi
    1.27 -
    1.28 -# Apply the color scheme if needed
    1.29 +# Override the color scheme if needed
    1.30  if [ "${CT_LOG_USE_COLORS}" = "y" ]; then
    1.31      CT_ERROR_COLOR="${_A_NOR}${_A_BRI}${_F_RED}"
    1.32      CT_WARN_COLOR="${_A_NOR}${_A_BRI}${_F_YEL}"
     2.1 --- a/scripts/functions	Tue May 08 20:41:08 2007 +0000
     2.2 +++ b/scripts/functions	Wed May 09 13:11:04 2007 +0000
     2.3 @@ -75,7 +75,7 @@
     2.4      else
     2.5          echo "${1}"
     2.6      fi |( IFS="\n" # We want the full lines, even leading spaces
     2.7 -          cpt=0
     2.8 +          CT_PROG_BAR_CPT=0
     2.9            indent=$((2*CT_STEP_COUNT))
    2.10            while read line; do
    2.11                case "${CT_LOG_SEE_TOOLS_WARN},${line}" in
    2.12 @@ -91,9 +91,16 @@
    2.13                normal="CT_NORMAL_COLOR"
    2.14                if [ ${cur_l} -le ${max_level} ]; then
    2.15                    echo -e "\r${!color}${l}${!normal}"
    2.16 -                  CT_PROG_BAR_CPT=0 # Force redrawing progress bar on next 'unlogged' line
    2.17 -              else
    2.18 -                  ${CT_PROG_BAR}
    2.19 +              fi
    2.20 +              if [ "${CT_LOG_PROGRESS_BAR}" = "y" ]; then
    2.21 +                  str=`CT_DoDate +%s`
    2.22 +                  elapsed=$((str-(CT_STAR_DATE/(1000*1000*1000))))
    2.23 +                  [ ${CT_PROG_BAR_CPT} -eq 0  ] && bar="/"
    2.24 +                  [ ${CT_PROG_BAR_CPT} -eq 10 ] && bar="-"
    2.25 +                  [ ${CT_PROG_BAR_CPT} -eq 20 ] && bar="\\"
    2.26 +                  [ ${CT_PROG_BAR_CPT} -eq 30 ] && bar="|"
    2.27 +                  printf "\r[%02d:%02d] %s " $((elapsed/60)) $((elapsed%60)) "${bar}"
    2.28 +                  CT_PROG_BAR_CPT=$(((CT_PROG_BAR_CPT+1)%40))
    2.29                fi
    2.30            done
    2.31          )