The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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

fresh_start

Delete the report directory before indexing. This cleans out all previous work, so you need to save that on your own.

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 the pause_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::Queue

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::Queue

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

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