in reply to Re: Capture wget progress bar
in thread Capture wget progress bar

That's one of the reasons, the others are resuming, cookies, proxy. All possible with native Perl code but not as easy IMO. The only thing I can't get to work properly is the progress bar, which on wget looks VERY nice.

Replies are listed 'Best First'.
Re: Re: Re: Capture wget progress bar
by tachyon (Chancellor) on Mar 16, 2003 at 06:20 UTC

    FWIW you can easily make a progress bar by printing backspace chars or a carriage return so you can overprint.

    cheers

    tachyon

    s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print

      It is easy to do the printing, but the actual formatting would need more than a small amout of code to get the same effect as wget's one.

        but the actual formatting would need more than a small amout of code to get the same effect as wget's one.

        This being perl and all you can do it in one line.... I made the sub 5 lines for documentation and data integrity purposes!

        do{ print progress_bar( $_, 100, 25, '=' ); sleep 1 } for 1..100; # print a progress bar, inputs should be self explanatory otherwise ju +st RTFS! sub progress_bar { my ( $got, $total, $width, $char ) = @_; $width ||= 25; $char ||= '='; $num_width = length $total; sprintf "|%-${width}s| Got %${num_width}s bytes of %s (%.2f%)\r", $char x (($width-1)*$got/$total). '>', $got, $total, 100*$got/ +$total; } __DATA__ |==========> | Got 42 bytes of 100 (42.00%)

        Gotta love perl and functions like x sprintf/printf

        cheers

        tachyon

        s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print