X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=Makefile.PL;h=47d1db9a8a1b839c1fdfeb1d54f0de2a35c02d1b;hb=8f7296d0b564f052d4b17dddbd553dc355b04f88;hp=365b17768631338db0fb2274b232766e8c9d7c30;hpb=42fe5d1105a231224bd6d8853c873894146b94ba;p=catagits%2FGitalist.git diff --git a/Makefile.PL b/Makefile.PL index 365b177..47d1db9 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -1,21 +1,171 @@ #!/usr/bin/env perl -# IMPORTANT: if you delete this file your app will not work as -# expected. You have been warned. -use inc::Module::Install; + +use FindBin; +BEGIN { + my $env = "$FindBin::Bin/script/env"; + if (-r $env) { + do $env or die $@; + } +} + +use strict; +use warnings; + +use inc::Module::Install 0.91; name 'Gitalist'; all_from 'lib/Gitalist.pm'; -requires 'Catalyst::Runtime' => '5.80003'; +author 'Dan Brook '; + +license 'gpl2'; + +if ($ENV{GITALIST_RELEASE_TESTING}) { + # Nasty hack as Module::Install kindly re-loads all of these :/ + local $SIG{__WARN__} = sub { return if $_[0] =~ /redefined/; warn shift }; + require Module::Install::AuthorRequires; + require Module::Install::AuthorTests; + + author_tests('t/author'); + author_requires('Test::NoTabs'); + author_requires('Test::Pod' => '1.14'); + author_requires('Test::Pod::Coverage' => '1.04'); + + require File::Find; + require FindBin; + require ExtUtils::MM_Unix; + # Fill in provides info so that indexing works right (in the face of MX::Declare) + # by just smashing filenames to package names and not trying to be smart.. + File::Find::find(sub { + return unless /^\w.*?\.pm$/; + my $fn = $File::Find::name; + my $ver = ExtUtils::MM_Unix->parse_version($fn); + + $fn =~ s/.+?lib/lib/; + my $pn = $fn; + $pn =~ s|^lib/||; + $pn =~ s|/|::|g; + $pn =~ s/\.pm$//; + + provides( + $pn => { + file => $fn, + # Ewww + $ver ne 'undef' ? (version => $ver) : (), + }, + ); + }, $FindBin::Bin . "/lib"); +} + +requires 'Catalyst::Runtime' => '5.8001402'; requires 'Catalyst::Plugin::ConfigLoader'; +requires 'Catalyst::Plugin::StackTrace'; requires 'Catalyst::Plugin::Static::Simple'; +requires 'Catalyst::Plugin::Unicode::Encoding'; +requires 'Catalyst::Plugin::SubRequest' => '0.15'; requires 'Catalyst::Action::RenderView'; +requires 'Catalyst::Action::REST'; +requires 'Catalyst::Component::InstancePerContext'; +requires 'Catalyst::Controller::ActionRole'; +requires 'Catalyst::View::Component::SubInclude' => '0.07'; +requires 'Catalyst::View::TT' => '0.34'; +requires 'Try::Tiny'; +requires 'Template' => '2.22'; +requires 'Template::Plugin::Cycle'; +requires 'Template::Plugin::UTF8Decode'; + +requires 'Config::General'; + requires 'Moose'; +requires 'Moose::Autobox'; +requires 'MooseX::Declare' => '0.32'; +requires 'MooseX::Storage'; +requires 'MooseX::Types'; +requires 'MooseX::Types::Common'; +requires 'MooseX::Types::Path::Class'; +requires 'MooseX::Types::ISO8601'; requires 'namespace::autoclean'; -requires 'Config::General'; # This should reflect the config file format you've chosen - # See Catalyst::Plugin::ConfigLoader for supported formats + +requires 'Git::PurePerl' => '0.47'; + +requires 'aliased'; +requires 'CGI'; +requires 'DateTime'; +requires 'File::Copy::Recursive'; +requires 'File::Type'; +requires 'File::Type::WebImages'; +requires 'File::Which'; +requires 'HTML::Entities'; +requires 'IPC::Run'; +requires 'JSON'; +requires 'JSON::XS'; +requires 'List::MoreUtils'; +requires 'Path::Class' => '0.17'; +requires 'Syntax::Highlight::Engine::Kate'; +requires 'Sys::Hostname'; + +requires_external_bin 'git'; + +test_requires 'Test::Deep' => '0.108'; +test_requires 'Test::More' => '0.88'; +test_requires 'Test::utf8' => '0.02'; +test_requires 'Test::Exception' => '0.31'; + +resources bugtracker => 'http://rt.cpan.org/Public/Dist/Display.html?Name=Gitalist'; +resources repository => 'git://git.shadowcat.co.uk/catagits/Gitalist.git'; + catalyst; -install_script glob('script/*.pl'); +if ($Module::Install::AUTHOR) { + system("pod2text lib/Gitalist.pm > README") + and die $!; + include 'File::Copy::Recursive'; +} + +if ($ENV{GITALIST_RELEASE_TESTING}) { + author_tests('t/author'); + author_requires('Test::NoTabs'); + author_requires('Test::Pod' => '1.14'); + author_requires('Test::Pod::Coverage' => '1.04'); + author_requires('Test::WWW::Mechanize::Catalyst' => '0.51'); + author_requires('HTML::TreeBuilder::XPath'); + author_requires('WWW::Mechanize::TreeBuilder'); +} + +install_script glob('script/*.p{l,sgi}'); auto_install; + +{ # Make sure you REALLY REALLY have to have the env variable set to run + # any of the dist actions. + package # PAUSE HIDE + MY; + + sub dist_core { # MakeMaker is awesome fun to customise. And when I say + my ($self, @args) = @_; # fun I mean OH GOD MY EYES. + my $text = $self->SUPER::dist_core(@args); + my @lines = split /\n/, $text; + unless ($ENV{GITALIST_RELEASE_TESTING}) { + my ($printed, @out_lines); + foreach my $in (@lines) { + if ($in =~ /^\S/) { + undef $printed; + $in =~ s/:.*$/:/g; + push @out_lines, $in; + } + elsif ($in =~ /^\s+$/) { + push @out_lines, $in; + } + elsif (!$printed) { + push @out_lines, "\techo Get stuffed mate - set GITALIST_RELEASE_TESTING if you really want to do this.."; + $printed = 1; + } + else {} + } + @lines = @out_lines; + } + return join "\n", @lines; + } +} + WriteAll; +