polardbxengine/plugin/innodb_memcached/daemon_memcached/devtools/svn-tarballs.pl

50 lines
1.5 KiB
Perl

#!/usr/bin/perl
use strict;
use FindBin qw($Bin);
my %branch = (
'1.2.x' => "http://code.sixapart.com/svn/memcached/trunk/server",
'1.1.x' => "http://code.sixapart.com/svn/memcached/branches/memcached-1.1.x",
);
foreach my $b (keys %branch) {
chdir $Bin or die;
my $url = $branch{$b};
my $out = `svn info $b`;
unless ($out =~ /^URL: (.+)/m && $1 eq $url) {
system("rm -rf $b");
system("svn", "co", $url, $b)
and die "Failed to checkout $url\n";
} else {
chdir "$Bin/$b" or die;
system("svn up") and die "Failed to svn up";
}
chdir "$Bin/$b" or die;
$out = `svn info .`;
my ($maxrev) = $out =~ /^Last Changed Rev: (\d+)/m
or die "No max rev?";
print "$b = $maxrev\n";
my $distfile = "memcached-$b-svn$maxrev.tar.gz";
next if -f $distfile && -s _;
open(my $fh, "configure.ac") or die "no configure.ac in $b?";
my $ac = do { local $/; <$fh>; };
close($fh);
$ac =~ s!AC_INIT\(memcached,.+?\)!AC_INIT(memcached, $b-svn$maxrev, brad\@danga.com)!
or die "Failed to replace";
open (my $fh, ">configure.ac") or die "failed to write configure.ac writeable: $!";
print $fh $ac;
close ($fh);
system("./autogen.sh") and die "Autogen failed. Missing autotools?";
system("./configure") and die "configure failed";
system("make dist") and die "make dist failed";
die "Failed to make dist $distfile." unless -s $distfile;
}