diff --git a/scripts/pkg-repgen.pl b/scripts/pkg-repgen.pl index 79c44e3..1b9a698 100755 --- a/scripts/pkg-repgen.pl +++ b/scripts/pkg-repgen.pl @@ -32,13 +32,28 @@ $prtget .= " --no-std-config --config-set=\"prtdir $prtdir\"" if ($prtdir); my @dirlist = glob("*#*.pkg.tar.$compress"); my @packages; my %isDup; +sub pkg_mtime { + my $aName = $a; my $bName = $b; + my $aTime; my $bTime; + $aName =~ s/#.*//; + $bName =~ s/#.*//; + if ($aName lt $bName) { return -1; } + elsif ($aName gt $bName) { return 1; } + else { + $aTime = (stat $a)[9]; + $bTime = (stat $b)[9]; + } + if ($aTime le $bTime) { return -1; } + else { return 1; } +} + if ($#ARGV >= 0) { # single packages foreach my $name (sort @ARGV) { my @hits = glob("$name#*.pkg.tar.$compress"); push(@packages,@hits); } } else { - @packages = @dirlist; + @packages = sort pkg_mtime @dirlist; %isDup = map { $_ => 0 } @packages; } @@ -255,6 +270,7 @@ run_script() { foreach my $name (@dirlist) { $name =~ s/\#.*//; next if ($seen{$name}); $seen{$name} = 1; + next if (! $path{$name}); if (-f "$path{$name}/README"){ print $fR "##### PKGREADME: $name\n"; open(my $readme, "$path{$name}/README");