| 1 | use strict; |
|---|
| 2 | use inc::Module::Install; |
|---|
| 3 | |
|---|
| 4 | name('Garuda'); |
|---|
| 5 | all_from('lib/Garuda.pm'); |
|---|
| 6 | |
|---|
| 7 | requires('Class::Component'); |
|---|
| 8 | requires('Class::Accessor::Fast'); |
|---|
| 9 | requires('UNIVERSAL::require' => 0.10); |
|---|
| 10 | requires('FindBin'); |
|---|
| 11 | requires('Path::Class'); |
|---|
| 12 | requires('YAML' => 0.39); |
|---|
| 13 | requires('App::Cmd::Simple'); |
|---|
| 14 | requires('Sys::Syslog' => 0.16); |
|---|
| 15 | requires('Log::Dispatch::Config'); |
|---|
| 16 | requires('Log::Dispatch::Configurator::Any'); |
|---|
| 17 | requires('Log::Dispatch::File'); |
|---|
| 18 | requires('Log::Dispatch::Colorful'); |
|---|
| 19 | requires('DateTime' => 0.35); |
|---|
| 20 | requires('DateTime::TimeZone' => 0.56); |
|---|
| 21 | requires('DateTime::Locale' => 0.32); |
|---|
| 22 | requires('Encode' => 2.10); |
|---|
| 23 | requires('Template'=> 2.13); |
|---|
| 24 | requires('Return::Value'); |
|---|
| 25 | requires('DBIx::Class'); |
|---|
| 26 | requires('DBIx::Class::Schema::Loader'); |
|---|
| 27 | requires('DateTime::Format::MySQL'); |
|---|
| 28 | requires('DBIx::Class::InflateColumn::DateTime'); |
|---|
| 29 | requires('DBIx::Class::AsFdat'); |
|---|
| 30 | |
|---|
| 31 | build_requires('YAML'); |
|---|
| 32 | build_requires('YAML::Loader'); |
|---|
| 33 | include_deps('YAML'); |
|---|
| 34 | |
|---|
| 35 | build_requires('Test::More', 0.42); |
|---|
| 36 | build_requires('Test::Base', 0.52); |
|---|
| 37 | build_requires('Test::Exception'); |
|---|
| 38 | build_requires('File::Temp'); |
|---|
| 39 | build_requires('FindBin'); |
|---|
| 40 | build_requires('DBI', 1.608); |
|---|
| 41 | build_requires('DBD::SQLite'); |
|---|
| 42 | |
|---|
| 43 | |
|---|
| 44 | require YAML; |
|---|
| 45 | require DirHandle; |
|---|
| 46 | require File::Spec; |
|---|
| 47 | |
|---|
| 48 | my $dh = DirHandle->new("deps"); |
|---|
| 49 | my @plugins; |
|---|
| 50 | while (my $f = $dh->read) { |
|---|
| 51 | next unless $f =~ /\.yaml$/; |
|---|
| 52 | my $meta = YAML::LoadFile( File::Spec->catfile("deps", $f) ); |
|---|
| 53 | push @plugins, $meta if !$meta->{platform} || $meta->{platform} eq $^O; |
|---|
| 54 | } |
|---|
| 55 | |
|---|
| 56 | for my $meta (sort { $b->{default} <=> $a->{default} || $a->{name} cmp $b->{name} } @plugins) { |
|---|
| 57 | features( |
|---|
| 58 | $meta->{name}, [ |
|---|
| 59 | -default => $meta->{default}, |
|---|
| 60 | map recommends($_ => $meta->{depends}->{$_}), keys %{$meta->{depends} || {}}, |
|---|
| 61 | ], |
|---|
| 62 | ); |
|---|
| 63 | } |
|---|
| 64 | |
|---|
| 65 | tests 't/*.t t/*/*.t t/*/*/*.t'; |
|---|
| 66 | |
|---|
| 67 | use_test_base(); |
|---|
| 68 | |
|---|
| 69 | auto_include(); |
|---|
| 70 | auto_install(); |
|---|
| 71 | |
|---|
| 72 | install_script('bin/garuda.pl'); |
|---|
| 73 | install_script('bin/garuda_test_worker.pl'); |
|---|
| 74 | WriteAll; |
|---|
| 75 | |
|---|
| 76 | |
|---|