From a710914b36db4d52ce557dab98b3208c9af95667 Mon Sep 17 00:00:00 2001 From: mischief Date: Sat, 22 Mar 2014 23:28:42 -0700 Subject: [PATCH] hget: add the -v option to produce progress on stderr, like old hget --- rc/bin/hget | 16 +++++++++++++++- sys/man/1/hget | 21 +++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/rc/bin/hget b/rc/bin/hget index 82b9cba67..fb7534403 100755 --- a/rc/bin/hget +++ b/rc/bin/hget @@ -2,7 +2,7 @@ rfork e argv0=$0 fn usage { - echo usage: $argv0 '[ -l | -o file] [ -p body | -P ] [ -r header ] [ -m method ] [ -b baseurl ] url' >[1=2] + echo usage: $argv0 '[ -v ] [ -l | -o file] [ -p body | -P ] [ -r header ] [ -m method ] [ -b baseurl ] url' >[1=2] exit usage } s=0 @@ -13,6 +13,7 @@ r=() m=() b=() l=() +v=() while(~ $1 -*){ switch($1){ case -o @@ -34,6 +35,8 @@ while(~ $1 -*){ case -b b=$2 shift + case -v + v=1 case * usage } @@ -71,6 +74,17 @@ if(! ~ $s 0) echo `{cat $d/parsed/url} exit } + if(~ $#v 1){ + hpid=$pid + @{ + while(ls /proc | grep -s $hpid) { + have=`{grep '^ 0' /proc/$hpid/fd | awk '{ print $9 }' } + want=`{cat $d/contentlength} + echo $have $want >[1=2] + sleep 1 + } + } & + } if(~ $#o 1){ l=`{cat $d/contentlength >[2]/dev/null} x=`{awk 'BEGIN{FS=" |-"}/^bytes ([0-9]+)\-/{print $2}' \ diff --git a/sys/man/1/hget b/sys/man/1/hget index a8671369d..6857015bb 100644 --- a/sys/man/1/hget +++ b/sys/man/1/hget @@ -22,6 +22,8 @@ hget, hpost, webpaste, urlencode \- retrieve, post to a web page corresponding t ] [ .B -b .I baseurl +] [ +.B -v ] .I url .PP @@ -124,6 +126,15 @@ Option .B -m overrides the HTTP method used for the request. .PP +Option +.B -v +causes +.I hget +to emit download status on file descriptor 2, +suitable for use with +.I aux/statusbar . +See EXAMPLES. +.PP .I Hpost retrieves the web page specified by the URL .I url, @@ -201,6 +212,16 @@ Download a file from the web. % hget http://9front.org/img/nix-on.jpg >/tmp/nix-on.jpg .EE .PP +Use +.I hget +in conjuncton with aux/statusbar to monitor progress. +.IP +.EX +hget -v -o 9front.iso.bz2 \\ + http://www.r-36.net/9front/9front.iso.bz2 \\ + |[2] aux/statusbar '9front.iso.bz2' +.EE +.PP Retrieve the commands needed to submit a form, which may then be edited and sent. .IP