Upgrade Module::Install to 1.06
[manu/RT-Extension-SearchResults-XLS.git] / inc / Module / Install / WriteAll.pm
1 #line 1
2 package Module::Install::WriteAll;
3
4 use strict;
5 use Module::Install::Base ();
6
7 use vars qw{$VERSION @ISA $ISCORE};
8 BEGIN {
9         $VERSION = '1.06';
10         @ISA     = qw{Module::Install::Base};
11         $ISCORE  = 1;
12 }
13
14 sub WriteAll {
15         my $self = shift;
16         my %args = (
17                 meta        => 1,
18                 sign        => 0,
19                 inline      => 0,
20                 check_nmake => 1,
21                 @_,
22         );
23
24         $self->sign(1)                if $args{sign};
25         $self->admin->WriteAll(%args) if $self->is_admin;
26
27         $self->check_nmake if $args{check_nmake};
28         unless ( $self->makemaker_args->{PL_FILES} ) {
29                 # XXX: This still may be a bit over-defensive...
30                 unless ($self->makemaker(6.25)) {
31                         $self->makemaker_args( PL_FILES => {} ) if -f 'Build.PL';
32                 }
33         }
34
35         # Until ExtUtils::MakeMaker support MYMETA.yml, make sure
36         # we clean it up properly ourself.
37         $self->realclean_files('MYMETA.yml');
38
39         if ( $args{inline} ) {
40                 $self->Inline->write;
41         } else {
42                 $self->Makefile->write;
43         }
44
45         # The Makefile write process adds a couple of dependencies,
46         # so write the META.yml files after the Makefile.
47         if ( $args{meta} ) {
48                 $self->Meta->write;
49         }
50
51         # Experimental support for MYMETA
52         if ( $ENV{X_MYMETA} ) {
53                 if ( $ENV{X_MYMETA} eq 'JSON' ) {
54                         $self->Meta->write_mymeta_json;
55                 } else {
56                         $self->Meta->write_mymeta_yaml;
57                 }
58         }
59
60         return 1;
61 }
62
63 1;