smokebrew
view release on metacpan or search on metacpan
lib/App/SmokeBrew.pm view on Meta::CPAN
package App::SmokeBrew;
$App::SmokeBrew::VERSION = '1.06';
#ABSTRACT: The guts of smokebrew
use strict;
use warnings;
use Pod::Usage;
use Log::Message::Simple qw[msg error];
use Module::Load::Conditional qw[can_load];
use App::SmokeBrew::IniFile;
use App::SmokeBrew::Tools;
use App::SmokeBrew::BuildPerl;
use Module::Pluggable search_path => 'App::SmokeBrew::Plugin';
use File::Spec;
use Cwd;
use Getopt::Long;
my @mirrors = (
'http://www.cpan.org/',
'http://cpan.cpantesters.org/',
);
use Moose;
with 'MooseX::Getopt', 'MooseX::ConfigFromFile';
use App::SmokeBrew::Types qw[ArrayRefUri ArrayRefStr];
sub get_config_from_file {
my ($class,$file) = @_;
my $options_hashref = App::SmokeBrew::IniFile->read_file($file);
my $opts = delete $options_hashref->{_};
$opts->{_plugins}->{$_} = delete $options_hashref->{$_}
for keys %{ $options_hashref };
return $opts;
}
has 'configfile' => (
is => 'ro',
default => sub {
my $file = File::Spec->catfile(
App::SmokeBrew::Tools->smokebrew_dir(),
'.smokebrew', 'smokebrew.cfg' );
return unless -e $file;
return $file;
},
);
use Moose::Util::TypeConstraints;
use MooseX::Types::Path::Class qw[Dir File];
use MooseX::Types::Email qw[EmailAddress];
# Mandatory
has 'builddir' => (
is => 'ro',
isa => Dir,
required => 1,
coerce => 1,
);
has 'prefix' => (
is => 'ro',
isa => Dir,
required => 1,
coerce => 1,
);
( run in 1.835 second using v1.01-cache-2.11-cpan-ceb78f64989 )