Listing 6 Maintain
=1= #!/usr/bin/perl
=2= use strict;
=3= $|++;
=4=
=5= use FindBin qw($Bin);
=6= BEGIN { chdir $Bin or die "Cannot chdir to $Bin: $!" }
=7=
=8= use WWW::Mechanize;
=9= use File::Copy;
=10=
=11= my $CPAN_DIR = "/web/private/CPAN";
=12= my $CPAN_URI = "http://www.stonehenge.comm/private/CPAN";
=13= my $CPAN_USER = "merlyn";
=14= chomp(my $CPAN_PASSWORD = <STDIN>);
=15=
=16= my @now = gmtime;
=17= my ($Y, $M, $D) = ($now[5]+1900, $now[4]+1, $now[3]);
=18=
=19= {
=20= local @ARGV = "lib/Acme/Current.pm";
=21= local $^I = "~";
=22= while (<>) {
=23= s/\$YEAR = \d+, \$MONTH = \d+, \$DAY = \d+;/\$YEAR = $Y, \$MONTH = $M, \$DAY = $D;/;
=24= print;
=25= }
=26= }
=27=
=28= system "perl Makefile.PL >/dev/null && make all test tardist </dev/null >/dev/null 2>&1";
=29=
=30= unlink glob "*.tar"; # in case it blocked from a .gz
=31= submit_to_cpan($_) for glob "Acme-Current-*.tar.gz";
=32=
=33= sub submit_to_cpan {
=34= my $local_file = shift;
=35=
=36= my $cpan_dir_file = "$CPAN_DIR/$local_file";
=37= return if -f $cpan_dir_file; # already submitted;
=38=
=39= copy $local_file, $cpan_dir_file;
=40= my $agent = WWW::Mechanize->new();
=41=
=42= $agent->credentials('pause.perl.org:443', 'PAUSE',
=43= $CPAN_USER, $CPAN_PASSWORD);
=44= $agent->get('https://pause.perl.org');
=45= $agent->follow(qr/Login/);
=46= $agent->follow(qr/Upload a file/);
=47= $agent->current_form->value('pause99_add_uri_uri',
=48= "$CPAN_URI/$local_file");
=49= $agent->click('SUBMIT_pause99_add_uri_uri');
=50= print "$local_file submitted\n";
=51= ### print $agent->current_form->dump;
=52= }
|