Gentoo-Perl-Distmap-FromOverlay

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

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 )