--- builds_bin/update_rpms_dir 2006/02/14 04:08:46 1.10 +++ builds_bin/update_rpms_dir 2006/04/19 06:25:05 1.14 @@ -4,7 +4,7 @@ # is free software; you can redistribute it and/or modify it under the # same terms as Perl itself. # -# $Id: update_rpms_dir,v 1.9 2006/02/12 05:06:41 gordonr Exp $ +# $Id: update_rpms_dir,v 1.13 2006/03/28 05:34:48 gordonr Exp $ # # Update RPMS directory with the latest from a given list of directories @@ -13,19 +13,23 @@ use Getopt::Long; my $rpm_flags = RPM2->vsf_nodsa; # Deal with missing DSA keys -GetOptions(\%opt, "verbose", "debug", "rpms_dir=s"); +GetOptions(\%opt, "verbose", "debug", "rpms_dir=s", "target_dir=s"); # XXX - FIXME - These will be command line options my $rpms_dir = $opt{rpms_dir} || "/builds/RPMS"; +my $target_dir = $opt{target_dir} || $rpms_dir; + warn "Using $rpms_dir\n" if $opt{verbose}; my @repositories = qw( /builds/rpms/RPMS/i386/ + /builds/rpms/RPMS/i586/ + /builds/rpms/RPMS/i686/ /builds/rpms/RPMS/noarch/ - /mirrors/centos/4.2/updates/i386/RPMS/ - /mirrors/centos/4.2/os/i386/CentOS/RPMS/ + /mirrors/centos/4/updates/i386/RPMS/ + /mirrors/centos/4/os/i386/CentOS/RPMS/ ); chdir $rpms_dir or die "Couldn't chdir $rpms_dir"; @@ -45,7 +49,7 @@ for my $file ( sort grep { /.rpm$/ } rea if ($newest) { # XXX - FIXME - Should we try other repos, or stop here? - print "rm $rpms_dir/$file; cp -p $dir/$newest $rpms_dir\n" + print "rm $target_dir/$file; cp -p $dir/$newest $target_dir\n" } } } @@ -78,6 +82,14 @@ sub find_newest next; } + if ($candidate->arch ne $rpm->arch) + { + warn "\tIgnoring $file - arch " + . $candidate->arch . " want " . $rpm->arch . "\n" + if $opt{debug}; + next; + } + if ( ($candidate cmp $rpm) <= 0) { warn "\tIgnoring $file - older or same version\n" if $opt{debug};