Update of /cvsroot/module-build/Module-Build/lib/Module/Build
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14270/lib/Module/Build
Modified Files:
Base.pm
Log Message:
Various fixes to run under Perl 5.005.
Index: Base.pm
===================================================================
RCS file: /cvsroot/module-build/Module-Build/lib/Module/Build/Base.pm,v
retrieving revision 1.531
retrieving revision 1.532
diff -u -d -r1.531 -r1.532
--- Base.pm 30 Nov 2005 10:47:33 -0000 1.531
+++ Base.pm 1 Dec 2005 08:20:16 -0000 1.532
@@ -943,7 +943,7 @@
my $self = shift;
my %prereqs;
foreach my $type ( @{ $self->prereq_action_types } ) {
- if ( my $sub = $self->can( $type ) ) {
+ if ( $self->can( $type ) ) {
my $prereq = $self->$type() || {};
$prereqs{$type} = $prereq if %$prereq;
}
@@ -2632,19 +2632,43 @@
sub do_create_readme {
my $self = shift;
$self->delete_filetree('README');
- my $parser = eval {require Pod::Readme; 1} ? Pod::Readme->new :
- eval {require Pod::Text; 1} ? Pod::Text->new :
- die "Can't load Pod::Readme or Pod::Text to create README";
- if ( my $docfile = $self->_main_docfile ) {
- $self->log_info("Creating README using " . ref($parser) . "\n");
- $parser->parse_from_file($docfile, 'README', @_);
- $self->_add_to_manifest('MANIFEST', 'README');
- } else {
+
+ my $docfile = $self->_main_docfile;
+ unless ( $docfile ) {
$self->log_warn(<<EOF);
-Cannot create README; can't determine which file contains documentation;
+Cannot create README: can't determine which file contains documentation;
Must supply either 'dist_version_from', or 'module_name' parameter.
EOF
+ return;
+ }
+
+ if ( eval {require Pod::Readme; 1} ) {
+ $self->log_info("Creating README using Pod::Readme\n");
+
+ my $parser = Pod::Readme->new;
+ $parser->parse_from_file($docfile, 'README', @_);
+
+ } elsif ( eval {require Pod::Text; 1} ) {
+ $self->log_info("Creating README using Pod::Text\n");
+
+ my $fh = IO::File->new('> README');
+ if ( defined($fh) ) {
+ local $^W = 0;
+ Pod::Text::pod2text( $docfile, $fh );
+ $fh->close;
+ } else {
+ $self->log_warn(
+ "Cannot create 'README' file: Can't open file for writing\n" );
+ return;
+ }
+
+ } else {
+ $self->log_warn("Can't load Pod::Readme or Pod::Text to create README\n");
+ return;
+
}
+
+ $self->_add_to_manifest('MANIFEST', 'README');
}
sub _main_docfile {
|