NAME
CPAN::Local - Hack custom CPAN repos
VERSION
version 0.009
DESCRIPTION
CPAN::Local is a framework for creating custom CPAN implementations. The
individual tasks related to mirror management are handled by separate
plugins, and those plugins can be combined to achieve the desired
behavior, or new ones can be written where further customizations is
needed.
There are other libraries for managing a local CPAN mirror, but while
all of them focus on functionality, CPAN::Local focuses entirely on
extensibility. It is insipered by Dist::Zilla and attempts to provide
sufficient flexibility to acommodate the strangest of needs.
This document describes the "CPAN::Local" class, which represents a
local repository with plugins configured to perform actions on it.
ATTRIBUTES
config_filename
Base name of the configuration file. Default is "cpanlocal".
config
A Config::MVP::Sequence representing the mirror configuration. Normally
generated by reading the configuration file (see "config_filename").
root_namespace
The root namespaces for plugins and roles that will be loaded. Default
is "CPAN::Local".
distribution_base_class
The base class for distribution objects. Default is
"CPAN::Local::Distribution".
root
The root directory of the repository. Assumes the current working
directory by default.
logger
Logging facility. An instance of Log::Dispatchouli by default.
plugins
All plugins requested by the "config", required and instantiated.
METHODS
plugins_with($role_name)
Returns all plugins that implement a given role. Only the last portion
of the role name should be passed as an argument - i.e. if $role_name is
"Index", then all plugins implementing "CPAN::Local::Role::Index" will
be returned.
SEE ALSO
Other libraries for building private CPANs
CPAN::Mini and CPAN::Mini::Inject
Pinto
OrePAN
CPAN::Site
MyCPAN::App::DPAN
Useful modules for plugin authors
Index files
CPAN::Index::API
Read and write 00whois.xml, 01mailrc.txt, 02packages.details.txt,
and 03modlist.data
PAUSE::Permissions
Read 06perms.txt
CPAN::Indexer::Mirror
Write mirror.yml and mirror.json
File::Rsync::Mirror::Recentfile
Read and write RECENT-XX.json files
Parse::CPAN::MirroredBy
Read MIRRORED.BY
Parse::CPAN::Distributions
Read find-ls
CPAN::Checksums
Read and write checksums
Populating a repository
CPAN::Inject - Add a distribution tarball to a local mirror
CPAN::Cache - Mirror a file from a remote repo
Distribution metadata
CPAN::DistnameInfo
Parse a distribution filename
Dist::Metadata
Read a distribution META file
CPAN::ParseDistribution
Use regular expressions to find distribution name, version, and
provided packages
Perl::PrereqScanner
Use PPI to find a distribution's dependencies
Module::Depends::Intrusive
Execute Makefile.PL/Build.PL to find a distribution's dependencies
Testing
CPAN::Faker - Build a dummy repo for testing
CPAN::Faker::HTTPD - Build a dummy repo and serve it over http
Miscellaneous
CPAN::Visitor - Traverse distributions in a repo
AUTHOR
Peter Shangov <
[email protected]>
COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Venda, Inc..
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.