initial import of skeleton code
[p5sagit/App-FatPacker.git] / inc / Distar.pm
1 package        # in case this escapes being no_index'ed in META.yml
2   inc::Distar; # this horrible little trick hides us from PAUSE. INVISIBUL!
3
4 use strict;
5 use warnings FATAL => 'all';
6
7 my $already;
8
9 my $AUTHOR;
10
11 my @do;
12
13 my %whoami;
14
15 sub import {
16   die "Can't call import() twice, last called from: ${already}"
17     if $already;
18   $already = join(' ', caller);
19   strict->import;
20   warnings->import(FATAL => 'all');
21   my $class = shift;
22   if (-e 'inc/whoami.pm') {
23     %whoami = %{do 'inc/whoami.pm' or die "Failed to eval inc/whoami.pm: $@"};
24   } else {
25     $AUTHOR = 1;
26     require inc::Distar::Guesswork;
27     %whoami = %{inc::Distar::Guesswork::guess(@_)};
28   }
29   push @do, sub {
30     require ExtUtils::MakeMaker;
31     ExtUtils::MakeMaker::WriteMakefile(%whoami)
32   };
33 }
34
35 END {
36   foreach my $do (@do) { $do->() }
37 }
38
39 1;