Mangle Makefile.PL yet again, dropping a trivial author dep, and moaning loudly if...
[catagits/Gitalist.git] / Makefile.PL
1 #!/usr/bin/env perl
2
3 use strict;
4 use warnings;
5
6 use inc::Module::Install 0.91;
7
8 name 'Gitalist';
9 all_from 'lib/Gitalist.pm';
10
11 author 'Dan Brook <broq@cpan.org>';
12
13 license 'gpl2';
14
15 if ($ENV{GITALIST_RELEASE_TESTING}) {
16     local $SIG{__WARN__} = sub { return if $_[0] =~ /redefined/; warn shift };
17     require Module::Install::AuthorRequires;
18     require Module::Install::AuthorTests;
19     require Module::Install::AutoProvidesFromCompilation;
20
21     author_tests 't/author';
22     author_requires 'Test::NoTabs';
23     author_requires 'Test::Pod' => '1.14';
24     author_requires 'Test::Pod::Coverage' => '1.04';
25     auto_provides_from_compilation();
26 }
27
28 requires 'Catalyst::Runtime' => '5.8001402';
29 requires 'Catalyst::Plugin::ConfigLoader';
30 requires 'Catalyst::Plugin::StackTrace';
31 requires 'Catalyst::Plugin::Static::Simple';
32 requires 'Catalyst::Plugin::Unicode::Encoding';
33 requires 'Catalyst::Action::RenderView';
34 requires 'Catalyst::Component::InstancePerContext';
35 requires 'Catalyst::View::TT';
36
37 requires 'Template';
38 requires 'Template::Provider::Encoding';
39 requires 'Template::Plugin::Cycle';
40
41 requires 'Config::General';
42
43 requires 'Moose';
44 requires 'Moose::Autobox';
45 requires 'MooseX::Declare' => '0.32';
46 requires 'MooseX::Types::Common';
47 requires 'MooseX::Types::Path::Class';
48 requires 'MooseX::Types';
49 requires 'namespace::autoclean';
50
51 requires 'Git::PurePerl' => '0.43';
52
53 requires 'aliased';
54 requires 'CGI';
55 requires 'DateTime';
56 requires 'DateTime::Format::Mail';
57 requires 'File::Copy::Recursive';
58 requires 'File::Which';
59 requires 'HTML::Entities';
60 requires 'IPC::Run';
61 requires 'List::MoreUtils';
62 requires 'Path::Class' => '0.17';
63 requires 'Sub::Exporter';
64 requires 'Syntax::Highlight::Engine::Kate';
65 requires 'Sys::Hostname';
66 requires 'XML::Atom';
67 requires 'XML::RSS';
68 requires 'XML::OPML::SimpleGen';
69
70 test_requires 'Test::More' => '0.88';
71 test_requires 'Test::utf8' => '0.02';
72
73 resources bugtracker => 'http://rt.cpan.org/Public/Dist/Display.html?Name=Gitalist';
74 resources repository => 'git://git.shadowcat.co.uk/catagits/Gitalist.git';
75
76 catalyst;
77
78 if ($Module::Install::AUTHOR) {
79     system("pod2text lib/Gitalist.pm > README")
80         and die $!;
81 }
82
83 install_script glob('script/*.pl');
84 auto_install;
85
86 {   # Make sure you REALLY REALLY have to have the env variable set to run
87     # any of the dist actions.
88     package # PAUSE HIDE
89     MY;
90
91     sub dist_core { # MakeMaker is awesome fun to customise. And when I say
92         my ($self, @args) = @_; # fun I mean OH GOD MY EYES.
93         my $text = $self->SUPER::dist_core(@args);
94         my @lines = split /\n/, $text;
95         unless ($ENV{GITALIST_RELEASE_TESTING}) {
96             my ($printed, @out_lines);
97             foreach my $in (@lines) {
98                 if ($in =~ /^\S/) {
99                     undef $printed;
100                     $in =~ s/:.*$/:/g;
101                     push @out_lines, $in;
102                 }
103                 elsif ($in =~ /^\s+$/) {
104                     push @out_lines, $in;
105                 }
106                 elsif (!$printed) {
107                     push @out_lines, "\techo Get stuffed mate - set GITALIST_RELEASE_TESTING if you really want to do this..";
108                     $printed = 1;
109                 }
110                 else {}
111             }
112             @lines = @out_lines;
113         }
114         return join "\n", @lines;
115     }
116 }
117
118 WriteAll;
119