On Monday 11 Feb 2002 20:02, Peter Ruskin wrote:
[...]
> ... and so on.  Every time I connect it seems these files have reverted
> to the previous ones.   That's all day Sunday and today!

It's still doing it today, and from ftp.uninett.no as well.  It must be 
something silly with version names.  This is what I've just got...
[20:35 peter@penguin:~]$ /usr/bin/perl $pscript                           
/mnt/downloads/mandrake/devel/unsupported/8.1/i586/
Move R-base-1.3.1-1mdk.i586.rpm to R-base-1.4.1-1mdk.i586.rpm
Move nss_wins-2.2.3a-1mdk.i586.rpm to nss_wins-2.2.2-3.3mdk.i586.rpm
Move samba-2.2.3a-1mdk.i586.rpm to samba-2.2.2-3.3mdk.i586.rpm
Move samba-client-2.2.3a-1mdk.i586.rpm to 
samba-client-2.2.2-3.3mdk.i586.rpm
Move samba-common-2.2.3a-1mdk.i586.rpm to 
samba-common-2.2.2-3.3mdk.i586.rpm
Move samba-doc-2.2.3a-1mdk.i586.rpm to samba-doc-2.2.2-3.3mdk.i586.rpm
Move samba-winbind-2.2.3a-1mdk.i586.rpm to 
samba-winbind-2.2.2-3.3mdk.i586.rpm

[20:41 peter@penguin:~]$ /usr/bin/perl $pscript
/mnt/downloads/mandrake/devel/unsupported/8.1/i586/
Move R-base-1.4.1-1mdk.i586.rpm to R-base-1.3.1-1mdk.i586.rpm
Move nss_wins-2.2.2-3.3mdk.i586.rpm to nss_wins-2.2.3a-1mdk.i586.rpm
Move samba-2.2.2-3.3mdk.i586.rpm to samba-2.2.3a-1mdk.i586.rpm
Move samba-client-2.2.2-3.3mdk.i586.rpm to 
samba-client-2.2.3a-1mdk.i586.rpm
Move samba-common-2.2.2-3.3mdk.i586.rpm to 
samba-common-2.2.3a-1mdk.i586.rpm
Move samba-doc-2.2.2-3.3mdk.i586.rpm to samba-doc-2.2.3a-1mdk.i586.rpm
Move samba-winbind-2.2.2-3.3mdk.i586.rpm to 
samba-winbind-2.2.3a-1mdk.i586.rpm

Now, $pscript is...
  my $server_no     = 'rsync://ftp.uninett.no:873';
  $store =~ s|/$||;
  print "$store".'/devel/unsupported/8.1/i586/'."\n";
  renamefiles("$server_no".'/Mandrake-devel/unsupported/8.1/i586/', 
    "$store".'/devel/unsupported/8.1/i586/');
sub renamefiles {
 my $rsyncmirror = shift;
 my $localmirror = shift;
 # Make the localhash list.
 my %locallist;
 $localmirror =~ s|/$||; # remove a slash in the end if it is there
 if (-d $localmirror) {
   opendir DIR, "$localmirror" or die "opendir: $!\n";  
   foreach my $file (grep { ! -d } readdir DIR) {
     if ($file =~ /([^\/]*)(-[^-\/]*){2}mdk.*rpm$/) {
       $locallist{$1} = $file;
     }
   } 
   closedir DIR; 
 }
 else { 
   die "opendir: $!\n" 
 };

 # Get Rsync filelist.
 my @rsyncrpmslist;
 open (LIST, "rsync -anv $rsyncmirror |");
 @rsyncrpmslist = map { split "\n" } <LIST>;   
 close (LIST);
 
 # Rename the files 
 foreach my $file (@rsyncrpmslist) {
  $file =~ s/^.*\s//; # Remove crap from rsync output
  $file =~ s/^.*\///; # Remove all until / 
  if ($file =~ /([^\/]*)(-[^-\/]*){2}mdk.*rpm$/) {
   if (($locallist{$1}) and ($locallist{$1} ne $file)) {
    print "Move $locallist{$1} to $file\n";
    rename($localmirror.'/'.$locallist{$1} , $localmirror.'/'.$file) || 
    die "Can't rename $localmirror.'/'.$locallist{$1} to 
$localmirror.'/'.$file: $!";
   }
  }
 } 
}

--- 
Peter Ruskin, Wrexham, Wales.  AMD Athlon XP 1600+, 512MB RAM.
Registered Linux User 219434.  Mandrake Linux release 8.1 (Vitamin) 
Kernel 2.4.8-34.1mdk-win4lin,  XFree86 4.1.0, patch level 21mdk.
KDE: 2.2.2.  Qt: 2.3.2.  Up 2 hours 38 minutes.

Reply via email to