Re: lib, ext, cpan and dist [PATCH] (take 2)
[perl.git] / ext / ExtUtils-MakeMaker / t / lib / MakeMaker / Test / Setup / MPV.pm
1 package MakeMaker::Test::Setup::MPV;
2
3 @ISA = qw(Exporter);
4 require Exporter;
5 @EXPORT = qw(setup_recurs teardown_recurs);
6
7 use strict;
8 use File::Path;
9 use File::Basename;
10
11 my %Files = (
12              'Min-PerlVers/Makefile.PL'   => <<'END',
13 use ExtUtils::MakeMaker;
14
15 WriteMakefile(
16     NAME             => 'Min::PerlVers',
17     AUTHOR           => 'John Doe <jd@example.com>',
18     VERSION_FROM     => 'lib/Min/PerlVers.pm',
19     PREREQ_PM        => { strict => 0 },
20     MIN_PERL_VERSION => '5.005',
21 );
22 END
23
24              'Min-PerlVers/lib/Min/PerlVers.pm'    => <<'END',
25 package Min::PerlVers;
26
27 $VERSION = 0.05;
28
29 =head1 NAME
30
31 Min::PerlVers - being picky about perl versions
32
33 =cut
34
35 1;
36 END
37
38 );
39
40
41 sub setup_recurs {
42     while(my($file, $text) = each %Files) {
43         # Convert to a relative, native file path.
44         $file = File::Spec->catfile(File::Spec->curdir, split m{\/}, $file);
45
46         my $dir = dirname($file);
47         mkpath $dir;
48         open(FILE, ">$file") || die "Can't create $file: $!";
49         print FILE $text;
50         close FILE;
51     }
52
53     return 1;
54 }
55
56 sub teardown_recurs {
57     foreach my $file (keys %Files) {
58         my $dir = dirname($file);
59         if( -e $dir ) {
60             rmtree($dir) || return;
61         }
62     }
63     return 1;
64 }
65
66
67 1;