diff options
author | alfred <alfred@FreeBSD.org> | 2012-12-13 01:39:49 +0000 |
---|---|---|
committer | alfred <alfred@FreeBSD.org> | 2012-12-13 01:39:49 +0000 |
commit | ed59b019d44cf187e772a20972d22af7e0f2b360 (patch) | |
tree | 9b1cd71b79a992775593c0f01c30e476e916d24e /usr.sbin/portsnap | |
parent | 8e3ebbc94a0890a551440fb6a5ba8cc9ee350d47 (diff) | |
download | FreeBSD-src-ed59b019d44cf187e772a20972d22af7e0f2b360.zip FreeBSD-src-ed59b019d44cf187e772a20972d22af7e0f2b360.tar.gz |
Change progress indicator for downloading patches.
Use a percent style indicator instead of emitting one
long line of patch numbers.
Diffstat (limited to 'usr.sbin/portsnap')
-rw-r--r-- | usr.sbin/portsnap/portsnap/portsnap.sh | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/usr.sbin/portsnap/portsnap/portsnap.sh b/usr.sbin/portsnap/portsnap/portsnap.sh index ed9c28d..f9f4716 100644 --- a/usr.sbin/portsnap/portsnap/portsnap.sh +++ b/usr.sbin/portsnap/portsnap/portsnap.sh @@ -612,6 +612,28 @@ fetch_progress() { echo -n " " } +pct_fmt() +{ + printf " \r" + printf "($1/$2) %02.2f%% " `echo "scale=4;$LNC / $TOTAL * 100"|bc` +} + +fetch_progress_percent() { + TOTAL=$1 + LNC=0 + pct_fmt $LNC $TOTAL + while read x; do + LNC=$(($LNC + 1)) + if [ $(($LNC % 100)) = 0 ]; then + pct_fmt $LNC $TOTAL + elif [ $(($LNC % 10)) = 0 ]; then + echo -n . + fi + done + pct_fmt $LNC $TOTAL + echo " done. " +} + # Sanity-check an index file fetch_index_sanity() { if grep -qvE "^[-_+./@0-9A-Za-z]+\|[0-9a-f]{64}$" INDEX.new || @@ -781,11 +803,13 @@ fetch_update() { echo " done." 1>${QUIETREDIR} # Attempt to fetch ports patches - echo -n "Fetching `wc -l < patchlist | tr -d ' '` " + patchcnt=`wc -l < patchlist | tr -d ' '` + echo -n "Fetching $patchcnt " echo ${NDEBUG} "patches.${DDSTATS}" + echo " " tr '|' '-' < patchlist | lam -s "bp/" - | xargs ${XARGST} ${PHTTPGET} ${SERVERNAME} \ - 2>${STATSREDIR} | fetch_progress + 2>${STATSREDIR} | fetch_progress_percent $patchcnt echo "done." # Attempt to apply ports patches |