NAME
dpan - create a DarkPAN from directories
SYNOPSIS
# from the command line
prompt> dpan [-l log4perl.config] [-f config] [directory [directory2]]
# get some help
prompt> dpan -h
prompt> dpan --help
DESCRIPTION
The dpan
script takes a list of directories, indexes any Perl distributions it finds, and creates the PAUSE index files from what it finds. Afterward, you should be able to point a CPAN tool at the directory and install the distributions normally.
If you don't specify any directories, it works with the current working directory.
At the end, dpan
creates a modules directory in the first directory (or the current working directory) and creates the 02package.details.txt.gz and 03modlist.data.gz.
Command-line processing
- -f config_file
- -l log4perl_config_file
-
The path to the log4perl configuration file. You can also set this with the <DPAN_LOG4PERL_FILE> environment variable or the
log4perl_file
configuration directive.
Configuration options
If you don't specify these values in a configuation file, dpan
will use its defaults.
- alarm
-
The maximum amount of time allowed to index a distribution, in seconds.
Default: 15
- backpan_dir
-
The directory that has the distributions to archive. Remember, this is a subclass of MyCPAN::Indexer::App::BackPAN, so don't worry too much about the directive name.
Default: the current working directory
- copy_bad_dists
-
If set to a true value, copy bad distributions to the named directory so you can inspect them later.
Default: 0
- dispatcher_class
-
The Perl class to use as the dispatching class. It has to at least provide a run method. See
MyCPAN::Indexer::Tutorial
for details on dispatching classes.Default: MyCPAN::Indexer::Dispatch::Serial
- extra_reports_dir
-
You can specify another directory that contains pre-indexed reports.
dpan
will add these reports to its queue to create 02packages.details.txt.gz. So far,dpan
doesn't check that these reports correspond to any files in the repository and could cause the checks against 02packages.details.txt.gz to fail.You probably want to use this as a way to inject information about distributions that you skipped with
skip_dists_regexes
. - fresh_start
-
Delete the report directory before indexing. This cleans out all previous work, so you need to save that on your own. You can also set this with the
DPAN_FRESH_START
environment variable.Default: 0
- ignore_packages
-
You can tell DPAN to ignore some namespaces. The indexer may still record them, but they won't show up in 02packages.details.txt.gz. It's a space-separated list of exact package names
Default: main MY MM DB bytes DynaLoader
- indexer_class
-
The Perl class to use as the indexing class. It has to at least provide a run method. See
MyCPAN::Indexer::Tutorial
for details on indexing classes.Default: MyCPAN::App::DPAN::Indexer
- indexer_id
-
Give yourself a name so people who who ran
dpan
.Default: Joe Example <joe@example.com>
- interface_class
-
The Perl class to use as the interface class. It has to at least provide a run method. See
MyCPAN::Indexer::Tutorial
for details on interface classes.Default: MyCPAN::Indexer::Interface::Text
- log4perl_file
-
The path to the log4perl configuration file. You can also set this with the <-l> switch or the
DPAN_LOG4PERL_FILE
environment variable. - organize_dists
-
Take all of the distributions
dpan
finds and put the into a PAUSE-like structure under authors/id/D/DP/DPAN. You can change the author ID with thepause_id
directive.Default: 0
- parallel_jobs
-
The number of parallel jobs to run. This only matters for dispatcher classes that can do more than one thing at a time.
Default: 1
- pause_id
-
The author ID to use if organize_dists is set to a true value.
Default: DPAN
- queue_class MyCPAN::Indexer::SomeOtherQueue
-
The Perl class to use as the queue class. It has to at least provide a run method. See
MyCPAN::Indexer::Tutorial
for details on queue classes.Default: MyCPAN::Indexer::SkipQueue
- relative_paths_in_report
-
If true, supporting reporter classes change the path to the distribution file to be relative to authors/id.
Supported by
MyCPAN::App::DPAN::Reporter::Minimal
.Default: true
- reporter_class
-
The Perl class to use as the reporter class. It has to at least provide a run method. See
MyCPAN::Indexer::Tutorial
for details on reporter classes.Default: MyCPAN::App::DPAN::Reporter::Minimal
- report_dir
-
Where to store the distribution reports.
Default: a directory named indexer_reports in the current working directory
- retry_errors
-
Try to index a distribution even if it was previously tried and had an error. This depends on previous reports being in
report_dir
, so if you don't set that configuration directive, it won't matter.Default: 1
- skip_dists_regexes
-
You can specify a list of whitespace-separated regexes for
dpan
to use to filter the queue of distributions to index. You probably want to use this to skip very large distributions. You can have a pre-made index report by settingextra_reports_dir
.This is only supported by
MyCPAN::Indexer::SkipQueue
.Default: null
- skip_perl
-
When set to a true value,
skip_perl
causedpan
to ignore distributions that match/^(strawberry-?)perl-/
, since these can take a long time to index. You can have a pre-made index report by settingextra_reports_dir
.This is only supported by
MyCPAN::Indexer::SkipQueue
.Default: 0
- system_id macbookpro
-
Give the indexing system a name, just to identify the machine.
Default: 'an unnamed machine'
- temp_dir
-
Where to unpack the dists or create any temporary files.
Default: a temp directory in the current working directory
- worker_class
-
The Perl class to use as the worker class. It has to at least provide a run method. See
MyCPAN::Indexer::Tutorial
for details on worker classes.Default: MyCPAN::Indexer::Worker
LOG4PERL
You can set the Log4perl levels on each of the components separately:
log4perl.rootLogger = FATAL, Null
log4perl.logger.backpan_indexer = DEBUG, File
log4perl.logger.Indexer = DEBUG, File
log4perl.logger.Worker = DEBUG, File
log4perl.logger.Interface = DEBUG, File
log4perl.logger.Dispatcher = DEBUG, File
log4perl.logger.Queue = DEBUG, File
log4perl.logger.Reporter = DEBUG, File
ENVIRONMENT VARIABLES
- DPAN_FRESH_START
-
Delete the report directory before indexing. This cleans out all previous work, so you need to save that on your own. You can also set this with the
fresh_start
configuration directive. - DPAN_LOG4PERL_FILE
-
The path to the log4perl configuration file. You can also set this with the <-l> switch of the
log4perl_file
configuration directive.
SEE ALSO
MyCPAN::Indexer, MyCPAN::Indexer::DPAN
SOURCE AVAILABILITY
This code is in Github:
git://github.com/briandfoy/mycpan-indexer.git
git://github.com/briandfoy/mycpan--app--dpan.git
AUTHOR
brian d foy, <bdfoy@cpan.org>
COPYRIGHT AND LICENSE
Copyright (c) 2008-2009, brian d foy, All Rights Reserved.
You may redistribute this under the same terms as Perl itself.