Author: dagolden
Date: Tue Nov 10 04:13:07 2009
New Revision: 13480
Modified:
Module-Build/trunk/lib/Module/Build/Base.pm
Log:
make MYMETA field errors non-fatal
Modified: Module-Build/trunk/lib/Module/Build/Base.pm
==============================================================================
--- Module-Build/trunk/lib/Module/Build/Base.pm (original)
+++ Module-Build/trunk/lib/Module/Build/Base.pm Tue Nov 10 04:13:07 2009
@@ -1646,7 +1646,7 @@
$self->log_verbose("Removed previous '$mymetafile'\n");
}
$self->log_info("Creating new '$mymetafile' with configuration results\n");
- $self->write_metafile( $mymetafile, $self->prepare_metadata );
+ $self->write_metafile( $mymetafile, $self->prepare_metadata( fatal => 0 ) );
# Create Build
my ($build_script, $dist_name, $dist_version)
@@ -3981,7 +3981,7 @@
push @INC, File::Spec->catdir($self->blib, 'lib');
}
- if ( $self->write_metafile( $self->metafile, $self->prepare_metadata ) ) {
+ if ( $self->write_metafile( $self->metafile, $self->prepare_metadata( fatal
=> 1 ) ) ) {
$self->{wrote_metadata} = 1;
$self->_add_to_manifest('MANIFEST', $metafile);
}
@@ -4027,7 +4027,8 @@
}
sub prepare_metadata {
- my ($self) = @_;
+ my ($self, %args) = @_;
+ my $fatal = $args{fatal} || 0;
my $p = $self->{properties};
my $node = {};
@@ -4040,14 +4041,26 @@
foreach (qw(dist_name dist_version dist_author dist_abstract license)) {
(my $name = $_) =~ s/^dist_//;
$add_node->($name, $self->$_());
- die "ERROR: Missing required field '$_' for metafile\n"
+ my $err = "ERROR: Missing required field '$_' for metafile\n"
unless defined($node->{$name}) && length($node->{$name});
+ if ( $fatal ) {
+ die $err;
+ }
+ else {
+ $self->log_warn($msg);
+ }
}
$node->{version} = $self->normalize_version($node->{version});
if (defined( my $l = $self->license )) {
- die "Unknown license string '$l'"
+ my $err = "Unknown license string '$l'"
unless exists $self->valid_licenses->{ $l };
+ if ( $fatal ) {
+ die $err;
+ }
+ else {
+ $self->log_warn($msg);
+ }
if (my $key = $self->valid_licenses->{ $l }) {
my $class = "Software::License::$key";