perl progress bar dialog


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting perl progress bar dialog
# 1  
Old 09-15-2007
perl progress bar dialog

Hello,


In perl how to show the percentage download when we download something wget ...


For example when we wget some software instead of showing the following ......
============================================
[root@server]# wget http://www.mirrors.wiretapped.net/se...f-2.7.0.tar.gz
--06:31:29-- http://www.mirrors.wiretapped.net/se...f-2.7.0.tar.gz
=> `iptraf-2.7.0.tar.gz'
Resolving Wiretapped - Computer Security Software etc.... 203.220.0.26
Connecting to www.mirrors.wiretapped.net|203.220.0.26|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 363,496 (355K) [application/gzip]

100%[==================================================================================================>] 363,496 136.09K/s

06:31:33 (135.83 KB/s) - `iptraf-2.7.0.tar.gz' saved [363496/363496]

============================================

It will show on right hand side ...

1% of 100% complete

and

on left hand side it will show ...

[360/363496] bytes of download complete




Any other suggestions on "perl progress bar dialog" is welcome


Thanks
# 2  
Old 09-15-2007
This is an example. You need to install Term::ReadKey module from CPAN before you can run it.

Code:
#!/usr/bin/perl -w

$| = 1;

my $steps = 50;
my $columns = &getTerminalSize()->[1];

for (my $i=1; $i<=$steps; $i++) {
    my $percent = ($i/$steps*100);
    my $pbwidth = $columns-10;
    my $numhashes = ($i/$steps*$pbwidth);
    printf("\r% -${pbwidth}s% 10s", '#' x $numhashes, "[ " . $percent . "% ]");
    sleep 1;
}

sub getTerminalSize {
    use Term::ReadKey;
    my ($w, $h) = GetTerminalSize(STDOUT);
    if (!defined $w || !defined $h) {
        die "Cannot determine terminal size!";
    }
    return [$h, $w];
}

Output looks like this:
Code:
#########                                                                [ 14% ]

# 3  
Old 09-18-2007
Fine.. how do I integrate that with wget? And how can the script calculate the percentage value from the results of the wget .. instead of a fixed value defined in the script.


Thanks
# 4  
Old 09-18-2007
Why do you have to integrate with wget? Why not just try LWP in perl instead, or WWW::Curl? I cannot think of any good way to do it unless you have access to a WWW library such as curl or LWP, that you can implement whatever status reporting with it.
# 5  
Old 09-18-2007
Hello,

Thank you for your tips... I am zero where it comes to programming.. but I do have the logic/ideas only. I am starting to learn programming.


Can you give me a script which shows... downloading for example:-

http://www.mirrors.wiretapped.net/se...f-2.7.0.tar.gz

and showing the progress bar

which uses LWP in perl instead, or WWW::Curl


Thanks.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Progress bar

Hi Experts; Im in the process of writing a shell script for enabling an IT operations to run archiving.We use netbackup. The script is complete, though there is one bit that i need help on. Im trying to have a progess bar for the procedure.I have gone through the man page of the command in... (5 Replies)
Discussion started by: maverick_here
5 Replies

2. Shell Programming and Scripting

Perl Progress BAR

Looking for a solution to why my progress bar not working My code print "STARTED:\n "; my $pdf = CAM::PDF->new('XYZ.pdf') or die $CAM::PDF::errstr; print STDOUT "Processing File: "; open (FILE, ">bill_data.txt") || die "Unable to save Bill_data.txt file"; for my $pagenum (1 ..... (4 Replies)
Discussion started by: chakrapani
4 Replies

3. Shell Programming and Scripting

Progress bar for cp

I'm trying to use this code to get a progress bar for cp: "Can you get cp to give a progress bar like wget?" But I'm getting these errors: stat: illegal option -- c usage: stat awk: division by zero input record number 1, file source line number 4 I'm using Mac OS X 10.6... (1 Reply)
Discussion started by: pcwiz
1 Replies

4. Programming

A progress bar in C

Hello, it's me again...:eek: I need to create a progress bar in C, but i have no idea on how to do it. i want it to output something like this: Progress: 58% But i can't get it to work. Could you please post an example progress bar written in ANSI C? Thanks (4 Replies)
Discussion started by: Zykl0n-B
4 Replies

5. Shell Programming and Scripting

Progress Bar in Perl for UNIX

Hi Programmers, I just wrote a small script to print the percent complete. This maybe useful for someone! #!/usr/local/bin/perl # Total from which percentage will be calculated $cnt = 16; $|=1; for($i=0;$i<$cnt;$i++) { # Calculate Percentage $percent = ($i/$cnt)*100; (13 Replies)
Discussion started by: hifake
13 Replies

6. Shell Programming and Scripting

progress bar

hi all, in shell script (ksh), how do i write a progress bar ?? i have a script which searches files and while its searching i am currently printing out "." and if it finds what its searching for the script prints out the name of the file e.g .................. firstFile.txt... (2 Replies)
Discussion started by: cesarNZ
2 Replies

7. Shell Programming and Scripting

Progress bar

Hi friends, how can I show a progress bar for any running process in the shell script. For example when I am copying or compressing a file. Thanks. (1 Reply)
Discussion started by: dwiravi
1 Replies

8. UNIX for Advanced & Expert Users

how to have a cp progress bar?

Hi all, This is a reformed post to my earlier ones!!!!!! I would like to know how to include a progress bar while using the cp... I am copying a few huge files from cdrom but am unable to figure out ,how to give a progress bar!!!!! I checked out other sites as well,but the issue here is... (1 Reply)
Discussion started by: wrapster
1 Replies

9. UNIX for Advanced & Expert Users

progress bar

Hi all, I want to print # like that in a progress bar.. For e.g We can notice that during installation ... but,how to do that? Thnx, sakthi. (4 Replies)
Discussion started by: sakthi.abdullah
4 Replies
Login or Register to Ask a Question