App-TestOnTap

 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-TestOnTap-$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.324 seconds using v1.01-cache-2.11-cpan-140bd7fdf52 )