Commit | Line | Data |
89de6a33 |
1 | #!/usr/bin/env perl |
99daca22 |
2 | |
42b626cd |
3 | use FindBin; |
4 | BEGIN { do "$FindBin::Bin/script/env" or die $@ } |
839da3d7 |
5 | |
233ba83d |
6 | use strict; |
7 | use warnings; |
839da3d7 |
8 | |
52d05eb5 |
9 | use inc::Module::Install 0.91; |
89de6a33 |
10 | |
11 | name 'Gitalist'; |
12 | all_from 'lib/Gitalist.pm'; |
13 | |
f1855be5 |
14 | author 'Dan Brook <broq@cpan.org>'; |
15 | |
16 | license 'gpl2'; |
17 | |
31780e37 |
18 | if ($ENV{GITALIST_RELEASE_TESTING}) { |
6e601fea |
19 | # Nasty hack as Module::Install kindly re-loads all of these :/ |
31780e37 |
20 | local $SIG{__WARN__} = sub { return if $_[0] =~ /redefined/; warn shift }; |
21 | require Module::Install::AuthorRequires; |
22 | require Module::Install::AuthorTests; |
31780e37 |
23 | |
cb52c897 |
24 | author_tests('t/author'); |
25 | author_requires('Test::NoTabs'); |
26 | author_requires('Test::Pod' => '1.14'); |
27 | author_requires('Test::Pod::Coverage' => '1.04'); |
6e601fea |
28 | |
29 | require File::Find; |
30 | require FindBin; |
31 | require ExtUtils::MM_Unix; |
32 | # Fill in provides info so that indexing works right (in the face of MX::Declare) |
33 | # by just smashing filenames to package names and not trying to be smart.. |
34 | File::Find::find(sub { |
1aa53942 |
35 | return unless /^\w.*?\.pm$/; |
6e601fea |
36 | my $fn = $File::Find::name; |
37 | my $ver = ExtUtils::MM_Unix->parse_version($fn); |
38 | |
39 | $fn =~ s/.+?lib/lib/; |
40 | my $pn = $fn; |
41 | $pn =~ s|^lib/||; |
42 | $pn =~ s|/|::|g; |
43 | $pn =~ s/\.pm$//; |
44 | |
45 | provides( |
46 | $pn => { |
47 | file => $fn, |
48 | # Ewww |
49 | $ver ne 'undef' ? (version => $ver) : (), |
50 | }, |
51 | ); |
52 | }, $FindBin::Bin . "/lib"); |
31780e37 |
53 | } |
54 | |
3444c731 |
55 | requires 'Catalyst::Runtime' => '5.8001402'; |
89de6a33 |
56 | requires 'Catalyst::Plugin::ConfigLoader'; |
e14c0e67 |
57 | requires 'Catalyst::Plugin::StackTrace'; |
89de6a33 |
58 | requires 'Catalyst::Plugin::Static::Simple'; |
fac828e0 |
59 | requires 'Catalyst::Plugin::Unicode::Encoding'; |
db6de0b0 |
60 | requires 'Catalyst::Plugin::SubRequest' => '0.15'; |
89de6a33 |
61 | requires 'Catalyst::Action::RenderView'; |
bddfb71e |
62 | requires 'Catalyst::Component::InstancePerContext'; |
b6ec181b |
63 | requires 'Catalyst::Controller::ActionRole'; |
ca84e607 |
64 | requires 'Catalyst::Action::REST' => '0.85'; |
16bdb8df |
65 | requires 'Catalyst::View::Component::SubInclude' => '0.07'; |
ca84e607 |
66 | requires 'Catalyst::View::TT' => '0.34'; |
ecb0ebe7 |
67 | requires 'Try::Tiny'; |
839da3d7 |
68 | requires 'Template'; |
69 | requires 'Template::Provider::Encoding'; |
e14c0e67 |
70 | requires 'Template::Plugin::Cycle'; |
839da3d7 |
71 | |
72 | requires 'Config::General'; |
73 | |
42fe5d11 |
74 | requires 'Moose'; |
839da3d7 |
75 | requires 'Moose::Autobox'; |
cf400996 |
76 | requires 'MooseX::Declare' => '0.33'; |
e6e5020e |
77 | requires 'MooseX::Declare' => '0.32'; |
78 | requires 'MooseX::Types::DateTime'; |
79 | requires 'MooseX::Types::ISO8601'; |
6dca83ef |
80 | requires 'MooseX::Types::Common'; |
84f31a44 |
81 | requires 'MooseX::Types::Path::Class'; |
82 | requires 'MooseX::Types'; |
9521d566 |
83 | requires 'MooseX::Storage'; |
84 | requires 'JSON::XS'; |
839da3d7 |
85 | requires 'namespace::autoclean'; |
86 | |
507d1a2b |
87 | requires 'Git::PurePerl' => '0.46'; |
839da3d7 |
88 | |
84f31a44 |
89 | requires 'aliased'; |
267a322f |
90 | requires 'CGI'; |
91 | requires 'DateTime'; |
839da3d7 |
92 | requires 'DateTime::Format::Mail'; |
93 | requires 'File::Copy::Recursive'; |
e172b6b8 |
94 | requires 'File::Type'; |
95 | requires 'File::Type::WebImages'; |
839da3d7 |
96 | requires 'File::Which'; |
97 | requires 'HTML::Entities'; |
839da3d7 |
98 | requires 'IPC::Run'; |
99daca22 |
99 | requires 'JSON::XS'; |
267a322f |
100 | requires 'List::MoreUtils'; |
45420449 |
101 | requires 'Path::Class' => '0.17'; |
267a322f |
102 | requires 'Sub::Exporter'; |
103 | requires 'Syntax::Highlight::Engine::Kate'; |
d17ce39c |
104 | requires 'Sys::Hostname'; |
267a322f |
105 | |
c405f7db |
106 | requires_external_bin 'git'; |
107 | |
267a322f |
108 | test_requires 'Test::More' => '0.88'; |
5effb2c9 |
109 | test_requires 'Test::utf8' => '0.02'; |
b416c939 |
110 | test_requires 'HTTP::Request::Common'; |
267a322f |
111 | |
d25c7f92 |
112 | resources bugtracker => 'http://rt.cpan.org/Public/Dist/Display.html?Name=Gitalist'; |
113 | resources repository => 'git://git.shadowcat.co.uk/catagits/Gitalist.git'; |
d49ead14 |
114 | |
267a322f |
115 | catalyst; |
89de6a33 |
116 | |
31780e37 |
117 | if ($Module::Install::AUTHOR) { |
118 | system("pod2text lib/Gitalist.pm > README") |
119 | and die $!; |
8dce2bf3 |
120 | } |
121 | |
6dac2638 |
122 | if ($ENV{GITALIST_RELEASE_TESTING}) { |
6513677c |
123 | author_tests('t/author'); |
124 | author_requires('Test::NoTabs'); |
125 | author_requires('Test::Pod' => '1.14'); |
126 | author_requires('Test::Pod::Coverage' => '1.04'); |
127 | author_requires('Test::WWW::Mechanize::Catalyst' => '0.51'); |
128 | author_requires('HTML::TreeBuilder::XPath'); |
129 | author_requires('WWW::Mechanize::TreeBuilder'); |
6dac2638 |
130 | } |
131 | |
89de6a33 |
132 | install_script glob('script/*.pl'); |
133 | auto_install; |
0164ed44 |
134 | |
31780e37 |
135 | { # Make sure you REALLY REALLY have to have the env variable set to run |
136 | # any of the dist actions. |
137 | package # PAUSE HIDE |
138 | MY; |
139 | |
140 | sub dist_core { # MakeMaker is awesome fun to customise. And when I say |
141 | my ($self, @args) = @_; # fun I mean OH GOD MY EYES. |
142 | my $text = $self->SUPER::dist_core(@args); |
143 | my @lines = split /\n/, $text; |
144 | unless ($ENV{GITALIST_RELEASE_TESTING}) { |
145 | my ($printed, @out_lines); |
146 | foreach my $in (@lines) { |
147 | if ($in =~ /^\S/) { |
148 | undef $printed; |
149 | $in =~ s/:.*$/:/g; |
150 | push @out_lines, $in; |
151 | } |
152 | elsif ($in =~ /^\s+$/) { |
153 | push @out_lines, $in; |
154 | } |
155 | elsif (!$printed) { |
156 | push @out_lines, "\techo Get stuffed mate - set GITALIST_RELEASE_TESTING if you really want to do this.."; |
157 | $printed = 1; |
158 | } |
159 | else {} |
160 | } |
161 | @lines = @out_lines; |
162 | } |
163 | return join "\n", @lines; |
164 | } |
0164ed44 |
165 | } |
166 | |
89de6a33 |
167 | WriteAll; |
0164ed44 |
168 | |