—#!/usr/bin/perl
use
strict;
use
warnings;
use
English;
=pod
=head1 DESCRIPTION
new-release - the Business::Shipping release script.
=head1 RELEASE STEPS
#
# Manual: Update the CHANGELOG
#
#
# Make sure all the files (documentation, etc.) are up to date.
#
# Make sure that the manifest didn't get any extra stuff:
# rm MANIFEST; make manifest; svn diff MANIFEST | more
#
# UPDATE META.yml
#
# Then commit to CVS
#
perl Makefile.PL
make docs && make && make test
svn commit
#
# Delete old file, make new file, and upload to server.
# Upload the new version to CPAN, for PAUSE
# Update to the next verision in Makefile.PL (if you haven't already)
#
export VERSION_AFTER_THIS_UPLOAD=1.52
rm Business-Shipping-*.tar.gz
make tardist
bin/new-release.pl Business-Shipping-*.tar.gz
cpan-upload -user `cat ~/.apps/.PAUSE-user` -password `cat ~/.apps/.PAUSE-password` -mailto 'db@kavod.com' -non_interactive Business-Shipping-*.tar.gz
#
# This version updater doesn't work now that I've changed the Makefile.PL.
# perl -pi -e "s/\$VERSION = \'.\...\'/\$VERSION = \'${VERSION_AFTER_THIS_UPLOAD}\'/g" Makefile.PL
#
=cut
my
(
$file
) =
@ARGV
;
"Usage: $PROGRAM_NAME Business-Shipping-n.nn.tar.gz\n"
and
exit
unless
$file
;
$file
=~ m/^(Business-Shipping-\d\.\d\d)\.tar\.gz$/;
my
$version
= $1;
"version = $version\n"
;
"file=$file\n"
;
myexec(
"scp $file kavod\@kavod\.com:html/"
);
my
$cmd
=
qq{ssh kavod\@kavod\.com \<\<EOF
cd html/Business-Shipping
# Move old releases to the 'older' folder
rm Business-Shipping-latest
rm Business-Shipping-latest.tar.gz
mv Business-Shipping-* older/
# Pull in the new file.
cd ..
mv $file Business-Shipping
cd Business-Shipping
# Unpack it and make links
tar zxf $file
ln -s $file Business-Shipping-latest.tar.gz
ln -s $version Business-Shipping-latest
# Update CVS
cd CVS-Business-Shipping
cvs up
# Update version number
cd ..
echo '$version' > .version
EOF
}
;
myexec(
$cmd
);
sub
myexec
{
my
$cmd
=
shift
;
"Going to execute \"$cmd\"...\n"
;
return
system
(
$cmd
);
}