OrePAN2::Injector - Inject a distribution to your DarkPAN
use OrePAN2::Injector;
my $injector = OrePAN2::Injector->new(directory => '/path/to/darkpan');
$injector->inject(
'http://cpan.metacpan.org/authors/id/M/MA/MAHITO/Acme-Hoge-0.03.tar.gz',
{ author => 'MAHITO' },
);
OrePAN2::Injector allows you to inject a distribution into your DarkPAN.
"my $injector = OrePAN2::Injector->new(%attr)"
Constructor. Here %attr might be:
- directory
Your DarkPAN directory path. This is required.
- author
Default author of distributions. If you omit this, then
"DUMMY" will be used.
BETA: As of OrePAN2 0.37, the author attribute accepts
a code reference, so that you can calculate author whenever injecting
distributions:
my $author_cb = sub {
my $source = shift;
$source =~ m{authors/id/./../([^/]+)} ? $1 : "DUMMY";
};
my $injector = OrePAN2::Injector->new(
directory => '/path/to/darkpan',
author => $author_cb,
);
$injector->inject(
'http://cpan.metacpan.org/authors/id/M/MA/MAHITO/Acme-Hoge-0.03.tar.gz'
);
#=> Acme-Hoge-0.03 will be indexed with author MAHITO
Note that the code reference
$author_cb will be executed under the following
circumstances:
* the first argument is the $source argument to the inject method
* the working directory of it is the top level of the distribution in question
"$injector->inject($source,
\%option)"
Inject $source to your DarkPAN. Here
$source is one of the following:
- local archive file
eg: /path/to/Text-TestBase-0.10.tar.gz
- HTTP url
eg:
http://cpan.metacpan.org/authors/id/T/TO/TOKUHIROM/Text-TestBase-0.10.tar.gz
- git repository
eg: git://github.com/tokuhirom/Text-TestBase.git@master
Note that you need to set up git repository as a installable
git repo, that is, you need to put a META.json in your repository.
If you are using Minilla or Milla, your repository is already
ready to install.
Supports the following URL types:
git+file://path/to/repo.git
git://github.com/plack/Plack.git@1.0000 # tag
git://github.com/plack/Plack.git@devel # branch
They are compatible with cpanm.
- module name
eg: Data::Dumper
"\%option" might be:
- •
- author
Author of the distribution. This overrides
"new"'s author attribute.
Copyright (C) tokuhirom.
This library is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
tokuhirom <tokuhirom@gmail.com>