source: soft/build_system/build_system/upload/robot/trunk/doble2 @ 1

Last change on this file since 1 was 1, checked in by fasma, 12 years ago

Initial Import from Mandriva's soft revision 224062 and package revision 45733

File size: 1.4 KB
Line 
1#!/usr/bin/perl
2## Remove the doble rpm according to the date
3use URPM;
4
5
6my $sep = '-';
7my $delta;
8if ($ARGV[0] eq '--delta') { shift @ARGV ; $sep = '_'; $delta = '.delta' }
9
10@ARGV and -d @ARGV[0] or die "Usage: $0 <rpms dir 1> <rpms dir 2> ... <rpms dir n>\n";
11
12my @rpm = map { opendir my $DIR, $_; readdir $DIR } @ARGV;
13
14foreach (sort @rpm) {
15    next unless /\.rpm$/;
16    ($name, $version, $release) = m|([^/]+)$sep([^-]+)-([^-]+)\.[^.]+$delta\.rpm$|;
17    if ($name =~ /kernel-doc/) { ($major) = $version =~ /(\d+\.\d+)/; $name = "$name-$major" }
18    elsif ( $name =~ /(kernel(?:-linus)?\d*)-(\d+\.\d+)\.(\d+\.[^.]+.*?mdk)?/) { $name = "$1-$2"; $version = $3; }
19    elsif ( $name =~ /(kernel\d*)-([^-]+(?:-[^-]+)*)-(\d+\.\d+)\.(\d+[.-][^.]+.*?mdk)?/) { $name = "$1-$2-$3"; $version = $4; }
20    #print "\n$_ => $version $name\n" if /kernel-linus/;
21    if ($name eq $last) {
22            if ($name =~ /^kernel/) {
23                    URPM::ranges_overlap("== $version-$release","< $last_version-$last_release") ? print "$_ " : print "$lastfile "
24            } else {
25                    if ((stat($_))[9] < (stat($lastfile))[9]) { print "$_ "; next }
26                    elsif ((stat($_))[9] > (stat($lastfile))[9]) { print "$lastfile " }
27                    else { URPM::ranges_overlap("== $version-$release","< $last_version-$last_release") ? print "$_ " : print "$lastfile " }
28            } 
29    }
30    $last = $name;
31    $last_version = $version;
32    $last_release = $release;
33    $lastfile = $_;
34}
35print "\n";
Note: See TracBrowser for help on using the repository browser.