App-Pods2Site
view release on metacpan or search on metacpan
author/patch-next-version.pl view on Meta::CPAN
my @changes = readAll('Changes');
foreach (@msg)
{
$_ = "\t$_" if $_;
}
splice(@changes, 2, 0, "$nextVersion\t$today", @msg, "");
writeAll('Changes', @changes);
my @mk = qx(perl Makefile.PL 2>&1);
die("Failed creating makefile:\n@mk") if $?;
my $mkcfg = qx(perl -V:make 2>&1);
die("Failed finding make config:\n$mkcfg") if $?;
die("Unexpected mkcfg: '$mkcfg'\n") unless $mkcfg =~ /^make='([^']+)'/; #'
my $mkcmd = $1;
my $expectedDist = "App-Pods2Site-$nextVersion.tar.gz";
system("$mkcmd dist 2>&1");
die("Failed making dist '$expectedDist'\n") if ($? || !-f $expectedDist);
print "The current branch is '$br[0]' with next version = '$nextVersion'\n";
print "Ready to commit => tag => push => upload? ";
my $a = <STDIN>;
chomp($a);
if (lc($a) eq 'yes')
{
print "Committing, tagging, pushing and uploading...\n";
system("git commit -a -F $msgfile2 2>&1");
die("Failed commit") if $?;
system("git tag $nextTag 2>&1");
die("Failed tag\n") if $?;
system("git push origin $br[0] $nextTag 2>&1");
die("Failed push\n") if $?;
system("cpan-upload -v --user knth $expectedDist");
die("Failed upload\n") if $?;
}
else
{
my @realclean = qx($mkcmd realclean 2>&1);
die("Failed making realclean:\n@realclean") if $?;
print "Reverting!\n";
my @reset = qx(git reset --hard 2>&1);
die("Failed reset:\n@reset") if $?;
}
unlink($msgfile2);
print "END\n";
sub readAll
{
my $fn = shift;
open(my $fh, '<', $fn) or die("Failed to open '$fn': $!\n");
binmode($fh);
local $\ = undef;
my @c = <$fh>;
close($fh);
chomp(@c);
return @c;
}
sub writeAll
{
my $fn = shift;
my @c = @_;
open(my $fh, '>', $fn) or die("Failed to open '$fn': $!\n");
binmode($fh);
print $fh "$_\n" foreach (@c);
close($fh);
}
( run in 2.384 seconds using v1.01-cache-2.11-cpan-140bd7fdf52 )