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 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.