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