App-cpm
view release on metacpan or search on metacpan
lib/App/cpm/CLI.pm view on Meta::CPAN
requirements => $reqs,
mirror => $self->{mirror},
from => $self->{dependency_file}{type},
);
return (\@package, \@reinstall, $resolver->effective ? $resolver : undef);
}
sub generate_resolver {
my ($self, $initial) = @_;
my $cascade = App::cpm::Resolver::Cascade->new;
$cascade->add($initial) if $initial;
if (@{$self->{resolver}}) {
for my $r (@{$self->{resolver}}) {
my ($klass, @argv) = split /,/, $r;
my $resolver = $self->_generate_resolver($klass, @argv);
$cascade->add($resolver);
}
}
return $cascade if !$self->{default_resolvers};
if ($self->{mirror_only}) {
require App::cpm::Resolver::02Packages;
my $resolver = App::cpm::Resolver::02Packages->new(
mirror => $self->{mirror},
cache => "$self->{home}/sources",
);
$cascade->add($resolver);
return $cascade;
}
if (!$self->{argv} and -f $self->{snapshot}) {
if (!eval { require App::cpm::Resolver::Snapshot }) {
die "To load $self->{snapshot}, you need to install Carton::Snapshot.\n";
}
warn "Loading distributions from $self->{snapshot}...\n";
my $resolver = App::cpm::Resolver::Snapshot->new(
path => $self->{snapshot},
mirror => $self->{mirror},
);
$cascade->add($resolver);
}
my $resolver = App::cpm::Resolver::MetaCPAN->new(
$self->{dev} ? (dev => 1) : (only_dev => 1)
);
$cascade->add($resolver);
$resolver = App::cpm::Resolver::MetaDB->new(
uri => $self->{cpanmetadb},
mirror => $self->{mirror},
);
$cascade->add($resolver);
if (!$self->{dev}) {
$resolver = App::cpm::Resolver::MetaCPAN->new;
$cascade->add($resolver);
}
$cascade;
}
sub _generate_resolver {
my ($self, $klass, @argv) = @_;
if ($klass =~ /^metadb$/i) {
my ($uri, $mirror);
if (@argv > 1) {
($uri, $mirror) = @argv;
} elsif (@argv == 1) {
$mirror = $argv[0];
( run in 0.671 second using v1.01-cache-2.11-cpan-49f99fa48dc )