Changeset 3295 for lang/perl

Show
Ignore:
Timestamp:
12/18/07 23:10:29 (5 years ago)
Author:
yappo
Message:

lang/perl/misc/pmsetup: tools/release.pl をやめて ShipIt? を使うようにした。あとincをMANIFESTに含める

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/perl/misc/pmsetup/yappo-pmsetup

    r107 r3295  
    242242  ^t/9\d_.*\.t 
    243243  ^t/perlcritic 
    244   ^inc/ 
    245244  ^tools/ 
    246245  \.svn/ 
    247246  ^[^/]+\.yaml$ 
    248247  ^[^/]+\.pl$ 
     248  ^\.shipit$ 
    249249--- 
    250250file: README 
     
    278278  [% config.author %] 
    279279--- 
    280 file: tools/release.pl 
    281 chmod: 0744 
    282 template: | 
    283   #!/usr/bin/perl 
    284   use warnings; 
    285   use strict; 
    286   use File::Path; 
    287   use LWP::Simple; 
    288   use ExtUtils::MakeMaker qw(prompt); 
    289  
    290   my $version = shift @ARGV or die "Usage: release.pl version"; 
    291  
    292   my @pkg  = split /::/, '[% module %]'; 
    293   my $dist = join "-", @pkg; 
    294   my $path = join("/", @pkg) . ".pm"; 
    295  
    296   my $workdir  = "[% config.workdir %]"; 
    297   my $checkout = "$dist-$version"; 
    298  
    299   chdir $workdir; 
    300  
    301   if (-e $checkout) { 
    302       die "$workdir/$checkout exists. Remove it first"; 
    303   } 
    304  
    305   system("svk co [% config.mirror_repos %]/$dist/trunk $checkout"); 
    306   sleep(2); 
    307  
    308   if (-e $checkout) { 
    309       chdir $checkout; 
    310  
    311       rewrite_version("lib/$path", $version); 
    312  
    313       system("perl Makefile.PL --skip"); 
    314       system("make manifest"); 
    315  
    316       check_version("Changes", $version); 
    317  
    318       if (!system("make disttest")) { 
    319           system("svk ci -m 'packaging $version'"); 
    320           system("svk cp -m 'tag release $version' [% config.mirror_repos %]/$dist/trunk [% config.mirror_repos %]/$dist/tags/release-$version"); 
    321           system("make dist"); 
    322           if (prompt("upload to CPAN?: [yN]", 'n') =~ /[yY]/) { 
    323               system("cpan-upload -verbose $dist-$version.tar.gz"); 
    324           } else { 
    325               rename "$dist-$version.tar.gz", "../$dist-$version.tar.gz"; 
    326           } 
    327       } else { 
    328           warn "make disttest failed. Don't upload"; 
    329       } 
    330  
    331       chdir ".."; 
    332       system("svk co --detach $checkout"); 
    333   } 
    334  
    335   rmtree("$workdir/$checkout"); 
    336  
    337   sub rewrite_version { 
    338       my($file, $version) = @_; 
    339  
    340       open my $fh, $file or die "$file: $!"; 
    341       my $content = join '', <$fh>; 
    342       close $fh; 
    343  
    344       $content =~ s/^our \$VERSION = .*?;$/our \$VERSION = '$version';/m; 
    345  
    346       open my $out, ">", "lib/$path"; 
    347       print $out $content; 
    348       close $out; 
    349   } 
    350  
    351   sub check_version { 
    352       my($file, $version) = @_; 
    353  
    354       open my $fh, $file or die "$file: $!"; 
    355       while (<$fh>) { 
    356           /^\Q$version\E / and return 1; 
    357       } 
    358  
    359       die "$file doesn't contain log for $version"; 
    360   } 
     280file: .shipit 
     281chmod: 0644 
     282template: | 
     283  steps = FindVersion, ChangeVersion, CheckChangeLog, DistTest, Commit, Tag, MakeDist, UploadCPAN 
     284  svk.tagpattern = release-%v