1#line 1
2##
3# name:      Module::Package
4# abstract:  Postmodern Perl Module Packaging
5# author:    Ingy döt Net <ingy@cpan.org>
6# license:   perl
7# copyright: 2011
8# see:
9# - Module::Package::Plugin
10# - Module::Install::Package
11# - Module::Package::Tutorial
12
13package Module::Package;
14use 5.005;
15use strict;
16
17BEGIN {
18    $Module::Package::VERSION = '0.26';
19    $inc::Module::Package::VERSION ||= $Module::Package::VERSION;
20    @inc::Module::Package::ISA = __PACKAGE__;
21}
22
23sub import {
24    my $class = shift;
25    $INC{'inc/Module/Install.pm'} = __FILE__;
26    unshift @INC, 'inc' unless $INC[0] eq 'inc';
27    eval "use Module::Install 1.01 (); 1" or $class->error($@);
28
29    package main;
30    Module::Install->import();
31    eval {
32        module_package_internals_version_check($Module::Package::VERSION);
33        module_package_internals_init(@_);
34    };
35    if ($@) {
36        $Module::Package::ERROR = $@;
37        die $@;
38    }
39}
40
41# XXX Remove this when things are stable.
42sub error {
43    my ($class, $error) = @_;
44    if (-e 'inc' and not -e 'inc/.author') {
45        require Data::Dumper;
46        $Data::Dumper::Sortkeys = 1;
47        my $dump1 = Data::Dumper::Dumper(\%INC);
48        my $dump2 = Data::Dumper::Dumper(\@INC);
49        die <<"...";
50This should not have happened. Hopefully this dump will explain the problem:
51
52inc::Module::Package: $inc::Module::Package::VERSION
53Module::Package: $Module::Package::VERSION
54inc::Module::Install: $inc::Module::Install::VERSION
55Module::Install: $Module::Install::VERSION
56
57Error: $error
58
59%INC:
60$dump1
61\@INC:
62$dump2
63...
64    }
65    else {
66        die $error;
67    }
68}
69
701;
71
72