Article Listing 1 Listing 2 Listing 3 Listing 4
Listing 5 Listing 6 jan2004.tar

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=    }