Gentoo-Perl-Distmap-FromOverlay
view release on metacpan or search on metacpan
NAME
Gentoo::Perl::Distmap::FromOverlay - Scrape an Overlay to produce a
"Distmap"
VERSION
version 0.1.0
SYNOPSIS
use Gentoo::Perl::Distmap::FromOverlay;
my $translator = Gentoo::Perl::Distmap::FromOverlay->new( overlay => Gentoo::Overlay->new( '/path/to/overlay' ) )
# or
my $og = Gentoo::Overlay::Group->new();
$og->add_overlay('/path/to/overlay');
my $translator = Gentoo::Perl::Distmap::FromOverlay->new( overlay => $og )
# or
my $translator = Gentoo::Perl::Distmap::FromOverlay->new( overlay => Gentoo::Overlay::Group::INI->load_named('foo')->overlay_group );
and then
my $result = $translator->distmap;
And see "Gentoo::Perl::Distmap" for details on using the result.
AUTHOR
Kent Fredric <kentfredric@gmail.com>
lib/Gentoo/Perl/Distmap/FromOverlay.pm view on Meta::CPAN
my ($go) = class_type undef, { class => 'Gentoo::Overlay' };
my ($gog) = class_type undef, { class => 'Gentoo::Overlay::Group' };
Moose::Util::TypeConstraints::coerce(
$gog, $go,
sub {
require Gentoo::Overlay::Group;
my $tree = Gentoo::Overlay::Group->new();
$tree->add_overlay($_);
$tree;
}
);
has overlay => ( isa => $gog, ro, required, coerce );
has distmap => ( isa => 'Gentoo::Perl::Distmap', ro, lazy_build );
sub _warn {
shift;
require Carp;
return Carp::carp(shift);
}
sub _on_metadata_xml_missing {
my ( $self, $category, $package, $xml_file ) = @_;
lib/Gentoo/Perl/Distmap/FromOverlay.pm view on Meta::CPAN
sub _on_remote {
my ( $self, $remote, $stash, $distmap ) = @_;
return unless exists $remote->{type};
return unless $remote->{type} eq 'cpan';
my $upstream = $remote->content();
my $distmapargs = {
category => $stash->{category_name},
package => $stash->{package_name},
repository => $stash->{overlay_name},
distribution => $upstream,
};
my $on_ebuild = $self->_on_ebuild( $distmapargs, $stash, $distmap );
$stash->{package}->iterate( ebuilds => $on_ebuild );
return;
}
sub _on_package {
my ( $self, $distmap ) = @_;
my $cat;
lib/Gentoo/Perl/Distmap/FromOverlay.pm view on Meta::CPAN
}
};
}
sub _build_distmap {
my ($self) = @_;
require Gentoo::Perl::Distmap;
my $distmap = Gentoo::Perl::Distmap->new();
my $callback = $self->_on_package($distmap);
$self->overlay->iterate( packages => $callback );
return $distmap;
}
__PACKAGE__->meta->make_immutable;
no Moose;
1;
__END__
lib/Gentoo/Perl/Distmap/FromOverlay.pm view on Meta::CPAN
Gentoo::Perl::Distmap::FromOverlay - Scrape an Overlay to produce a C<Distmap>
=head1 VERSION
version 0.1.0
=head1 SYNOPSIS
use Gentoo::Perl::Distmap::FromOverlay;
my $translator = Gentoo::Perl::Distmap::FromOverlay->new( overlay => Gentoo::Overlay->new( '/path/to/overlay' ) )
# or
my $og = Gentoo::Overlay::Group->new();
$og->add_overlay('/path/to/overlay');
my $translator = Gentoo::Perl::Distmap::FromOverlay->new( overlay => $og )
# or
my $translator = Gentoo::Perl::Distmap::FromOverlay->new( overlay => Gentoo::Overlay::Group::INI->load_named('foo')->overlay_group );
and then
my $result = $translator->distmap;
And see L<< C<Gentoo::Perl::Distmap>|Gentoo::Perl::Distmap >> for details on using the result.
=head1 AUTHOR
Kent Fredric <kentfredric@gmail.com>
xt/author/basic.t view on Meta::CPAN
use Test::More;
if( not -e -d '/usr/portage/' ){
plan skip_all => 'Test needs a working portage in /usr/portage/'
}
use Gentoo::Overlay;
use Gentoo::Perl::Distmap::FromOverlay;
my $conversion = Gentoo::Perl::Distmap::FromOverlay->new(
overlay => Gentoo::Overlay->new( path => '/usr/portage' ),
);
local *Gentoo::Perl::Distmap::FromOverlay::_on_enter_category = sub {
*STDERR->print( '/' );
};
local *Gentoo::Perl::Distmap::FromOverlay::_on_enter_package = sub {
*STDERR->print( '_' );
};
local *Gentoo::Perl::Distmap::FromOverlay::_on_enter_ebuild = sub {
( run in 1.061 second using v1.01-cache-2.11-cpan-49f99fa48dc )