| 1 |
use strict; |
|---|
| 2 |
use inc::Module::Install; |
|---|
| 3 |
|
|---|
| 4 |
name('Plagger'); |
|---|
| 5 |
all_from('lib/Plagger.pm'); |
|---|
| 6 |
|
|---|
| 7 |
requires('Class::Accessor::Fast'); |
|---|
| 8 |
requires('File::Find::Rule'); |
|---|
| 9 |
requires('UNIVERSAL::require' => 0.10); |
|---|
| 10 |
requires('Template', 2.13); |
|---|
| 11 |
requires('Template::Provider::Encoding' => 0.04); |
|---|
| 12 |
requires('YAML' => 0.39); |
|---|
| 13 |
requires('Text::Tags'); |
|---|
| 14 |
requires('DateTime' => 0.29); |
|---|
| 15 |
requires('DateTime::Format::Mail'); |
|---|
| 16 |
requires('DateTime::Format::W3CDTF'); |
|---|
| 17 |
requires('DateTime::Format::Strptime'); |
|---|
| 18 |
requires('Digest::MD5'); |
|---|
| 19 |
requires('LWP'); |
|---|
| 20 |
requires('HTML::Parser' => 3.51); |
|---|
| 21 |
requires('URI::Fetch' => 0.071); |
|---|
| 22 |
requires('Cache::Cache' => 1.04); |
|---|
| 23 |
requires('Module::Pluggable::Fast'); |
|---|
| 24 |
requires('HTML::ResolveLink'); |
|---|
| 25 |
requires('Date::Parse'); |
|---|
| 26 |
requires('MIME::Types', 1.16); |
|---|
| 27 |
requires('Net::DNS'); |
|---|
| 28 |
|
|---|
| 29 |
requires('XML::Feed', 0.12); |
|---|
| 30 |
requires('XML::LibXML'); |
|---|
| 31 |
requires('XML::Atom', 0.23); |
|---|
| 32 |
requires('XML::RSS::LibXML', 0.20); |
|---|
| 33 |
requires('Encode', 2.10); |
|---|
| 34 |
requires('Term::Encoding'); |
|---|
| 35 |
requires('File::HomeDir'); |
|---|
| 36 |
|
|---|
| 37 |
build_requires('YAML'); |
|---|
| 38 |
include_deps('YAML'); |
|---|
| 39 |
|
|---|
| 40 |
build_requires('Test::More', 0.42); |
|---|
| 41 |
build_requires('Test::Base', 0.52); |
|---|
| 42 |
|
|---|
| 43 |
features( |
|---|
| 44 |
'Better Encoding detection' => [ |
|---|
| 45 |
-default => 0, |
|---|
| 46 |
recommends('Encode::Detect'), |
|---|
| 47 |
], |
|---|
| 48 |
'POD Testing' => [ |
|---|
| 49 |
-default => 0, |
|---|
| 50 |
recommends('Test::Pod'), |
|---|
| 51 |
recommends('Test::Pod::Coverage'), |
|---|
| 52 |
], |
|---|
| 53 |
'Cookie sharing with Firefox' => [ |
|---|
| 54 |
-default => 0, |
|---|
| 55 |
recommends('HTTP::Cookies::Mozilla'), |
|---|
| 56 |
], |
|---|
| 57 |
'Liberal XML parsing' => [ |
|---|
| 58 |
-default => 1, |
|---|
| 59 |
recommends('XML::Liberal', 0.14), |
|---|
| 60 |
recommends('XML::RSS::Liberal'), |
|---|
| 61 |
], |
|---|
| 62 |
'XPath support in Subscription and Feed Upgrader' => [ |
|---|
| 63 |
-default => 1, |
|---|
| 64 |
recommends('HTML::TreeBuilder::XPath'), |
|---|
| 65 |
], |
|---|
| 66 |
'Better html to text formatter' => [ |
|---|
| 67 |
-default => 1, |
|---|
| 68 |
recommends('HTML::TreeBuilder'), |
|---|
| 69 |
recommends('HTML::FormatText'), |
|---|
| 70 |
], |
|---|
| 71 |
); |
|---|
| 72 |
|
|---|
| 73 |
require YAML; |
|---|
| 74 |
require DirHandle; |
|---|
| 75 |
require File::Spec; |
|---|
| 76 |
|
|---|
| 77 |
my $dh = DirHandle->new("deps"); |
|---|
| 78 |
while (my $f = $dh->read) { |
|---|
| 79 |
next unless $f =~ /\.yaml$/; |
|---|
| 80 |
my $meta = YAML::LoadFile( File::Spec->catfile("deps", $f) ); |
|---|
| 81 |
|
|---|
| 82 |
if (!$meta->{platform} || $meta->{platform} eq $^O) { |
|---|
| 83 |
features( |
|---|
| 84 |
$meta->{name}, [ |
|---|
| 85 |
-default => $meta->{default}, |
|---|
| 86 |
map recommends($_ => $meta->{depends}->{$_}), keys %{$meta->{depends} || {}}, |
|---|
| 87 |
], |
|---|
| 88 |
); |
|---|
| 89 |
} |
|---|
| 90 |
} |
|---|
| 91 |
|
|---|
| 92 |
tests 't/*.t t/*/*.t t/*/*/*.t'; |
|---|
| 93 |
|
|---|
| 94 |
use_test_base; |
|---|
| 95 |
|
|---|
| 96 |
auto_include; |
|---|
| 97 |
auto_install; |
|---|
| 98 |
|
|---|
| 99 |
install_script('plagger'); |
|---|
| 100 |
install_script('bin/plagger-ircbot'); |
|---|
| 101 |
WriteAll; |
|---|