- my ($size, $lsize);
- if ($size = $ftp->size($file)) {
- &status("FTP: file size is $size") if ($verbose_ftp);
- my $thisfile = $file || $lfile;
-
- if ( -f $thisfile) {
- $lsize = -s $thisfile;
- if ($_ != $lsize) {
- &status("FTP: local size is $lsize; downloading.") if ($verbose_ftp);
- } else {
- &status("FTP: same size; skipping.");
- system("touch $thisfile"); # lame hack.
- $ftp->quit();
- return 1;
- }
- }
- } else {
- &status("FTP: file does not exist.");
- $ftp->quit();
- return 0;
- }
-
- my $start_time = &gettimeofday();
- if (defined $lfile) {
- &status("FTP: getting $file as $lfile.") if ($verbose_ftp);
- $ftp->get($file,$lfile);
- } else {
- &status("FTP: getting $file.") if ($verbose_ftp);
- $ftp->get($file);
- }
-
- if (defined $lsize) {
- &DEBUG("FTP: locsize => '$lsize'.");
- if ($size != $lsize) {
- &WARN("FTP: downloaded file seems truncated. FIXME.");
- }
- }
-
- my $delta_time = &gettimeofday() - $start_time;
- if ($delta_time > 0 and $verbose_ftp) {
- &status(sprintf("FTP: %.02f sec to complete.", $delta_time));
- my ($rateunit,$rate) = ("B", $size / $delta_time);
- if ($rate > 1024) {
- $rate /= 1024;
- $rateunit = "kB";
- }
- &status(sprintf("FTP: %.01f ${rateunit}/sec.", $rate));
+ my ( $size, $lsize );
+ if ( $size = $ftp->size($file) ) {
+ &status("FTP: file size is $size") if ($verbose_ftp);
+ my $thisfile = $file || $lfile;
+
+ if ( -f $thisfile ) {
+ $lsize = -s $thisfile;
+ if ( $_ != $lsize ) {
+ &status("FTP: local size is $lsize; downloading.")
+ if ($verbose_ftp);
+ }
+ else {
+ &status('FTP: same size; skipping.');
+ system("touch $thisfile"); # lame hack.
+ $ftp->quit();
+ return 1;
+ }
+ }
+ }
+ else {
+ &status('FTP: file does not exist.');
+ $ftp->quit();
+ return 0;
+ }
+
+ my $start_time = &timeget();
+ if ( defined $lfile ) {
+ &status("FTP: getting $file as $lfile.") if ($verbose_ftp);
+ $ftp->get( $file, $lfile );
+ }
+ else {
+ &status("FTP: getting $file.") if ($verbose_ftp);
+ $ftp->get($file);
+ }
+
+ if ( defined $lsize ) {
+ &DEBUG("FTP: locsize => '$lsize'.");
+ if ( $size != $lsize ) {
+ &FIXME('FTP: downloaded file seems truncated.');
+ }
+ }
+
+ my $delta_time = &timedelta($start_time);
+ if ( $delta_time > 0 and $verbose_ftp ) {
+ &status( sprintf( 'FTP: %.02f sec to complete.', $delta_time ) );
+ my ( $rateunit, $rate ) = ( 'B', $size / $delta_time );
+ if ( $rate > 1024 ) {
+ $rate /= 1024;
+ $rateunit = 'kB';
+ }
+ &status( sprintf( "FTP: %.01f ${rateunit}/sec.", $rate ) );