update-dockapps.pl: Correctly sort alpha, beta, and release candidate versions.

This commit is contained in:
Doug Torrance 2014-08-22 11:50:20 -05:00 committed by Carlos R. Mafra
parent a1cd5cadce
commit db658544cf

View file

@ -46,6 +46,7 @@ use warnings;
use strict; use strict;
use Git::Repository; use Git::Repository;
use POSIX; use POSIX;
use Debian::Dpkg::Version;
open DB, "dockapps.db.in" or die $!; open DB, "dockapps.db.in" or die $!;
my $db = do { local $/; <DB> }; my $db = do { local $/; <DB> };
@ -73,7 +74,7 @@ foreach my $tag (@tags) {
} }
foreach my $dockapp (keys %dockapps) { foreach my $dockapp (keys %dockapps) {
my $latest_version = (sort keys $dockapps{$dockapp})[-1]; my $latest_version = (sort by_version keys $dockapps{$dockapp})[-1];
if ($r->run("diff", "$dockapp-$latest_version", "HEAD", $dockapp)) { if ($r->run("diff", "$dockapp-$latest_version", "HEAD", $dockapp)) {
my $commit = $r->run("log", "-1", my $commit = $r->run("log", "-1",
"--pretty=format:%H", $dockapp); "--pretty=format:%H", $dockapp);
@ -95,7 +96,7 @@ foreach my $dockapp (keys %dockapps) {
foreach my $dockapp (keys %dockapps) { foreach my $dockapp (keys %dockapps) {
my $versions = ""; my $versions = "";
foreach my $version (reverse sort keys $dockapps{$dockapp}) { foreach my $version (reverse sort by_version keys $dockapps{$dockapp}) {
$versions .= "version-$version = " . $versions .= "version-$version = " .
$dockapps{$dockapp}{$version} . "\n"; $dockapps{$dockapp}{$version} . "\n";
} }
@ -107,6 +108,9 @@ open DB, ">dockapps.db" or die $!;
print DB $db; print DB $db;
close DB; close DB;
sub by_version {
(my $left = $a) =~ s/(a|b|rc)/~$1/;
(my $right = $b) =~ s/(a|b|rc)/~$1/;
Debian::Dpkg::Version->new($left) <=>
Debian::Dpkg::Version->new($right);
}