1#line 1
2package Module::Install::WriteAll;
3
4use strict;
5use Module::Install::Base ();
6
7use vars qw{$VERSION @ISA $ISCORE};
8BEGIN {
9	$VERSION = '1.01';
10	@ISA     = qw{Module::Install::Base};
11	$ISCORE  = 1;
12}
13
14sub 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
631;
64