64
     	ˆÄÃ49ÂÁÀ  1    	‹     Ó+ÎWÈMÌ3Ö¯HNŠOÏ©ˆÏ,ŽOÍKLÊIMÑ3 )¸‰b     0   ˆl–Ðz¾”Ð?JeAãN\*bÑ¿Ä„.¸ÿ_‹uÐb&=LV[(ÃÂ ?÷     package CPANPLUS::Config;

use strict;
use warnings;

use base 'Object::Accessor';
use base 'CPANPLUS::Internals::Utils';

use Config;
use File::Spec;
use Module::Load;
use CPANPLUS;
use CPANPLUS::Error;
use CPANPLUS::Internals::Constants;

use File::Basename              qw[dirname];
use IPC::Cmd                    qw[can_run];
use Locale::Maketext::Simple    Class => 'CPANPLUS', Style => 'gettext';
use Module::Load::Conditional   qw[check_install];
use version;

use vars qw[$VERSION];
$VERSION = "0.9138";

=pod

=head1 NAME

CPANPLUS::Config - configuration defaults and heuristics for CPANPLUS

=head1 SYNOPSIS

    ### conf object via CPANPLUS::Backend;
    $cb   = CPANPLUS::Backend->new;
    $conf = $cb->configure_object;

    ### or as a standalone object
    $conf = CPANPLUS::Configure->new;

    ### values in 'conf' section
    $verbose = $conf->get_conf( 'verbose' );
    $conf->set_conf( verbose => 1 );

    ### values in 'program' section
    $editor = $conf->get_program( 'editor' );
    $conf->set_program( editor => '/bin/vi' );

=head1 DESCRIPTION

This module contains defaults and heuristics for configuration
information for CPANPLUS. To change any of these values, please
see the documentation in C<CPANPLUS::Configure>.

Below you'll find a list of configuration types and keys, and
their meaning.

=head1 CONFIGURATION

=cut

### BAH! you can't have POD interleaved with a hash
### declaration.. so declare every entry separately :(
my $Conf = {
    '_fetch' => {
        'blacklist' => [ 'ftp' ],
    },

    ### _source, _build and _mirror are supposed to be static
    ### no changes should be needed unless pause/cpan changes
    '_source' => {
        'hosts'             => 'MIRRORED.BY',
        'auth'              => '01mailrc.txt.gz',
        'stored'            => 'sourcefiles',
        'dslip'             => '03modlist.data.gz',
        'update'            => '86400',
        'mod'               => '02packages.details.txt.gz',
        'custom_index'      => 'packages.txt',
    },
    '_build' => {
        'plugins'           => 'plugins',
        'moddir'            => 'build',
        'startdir'          => '',
        'distdir'           => 'dist',
        'autobundle'        => 'autobundle',
        'autobundle_prefix' => 'Snapshot',
        'autdir'            => 'authors',
        'install_log_dir'   => 'install-logs',
        'custom_sources'    => 'custom-sources',
        'sanity_check'      => 1,
    },
    '_mirror' => {
        'base'              => 'authors/id/',
        'auth'              => 'authors/01mailrc.txt.gz',
        'dslip'             => 'modules/03modlist.data.gz',
        'mod'               => 'modules/02packages.details.txt.gz'
    },
};

=head2 Section 'conf'

=over 4

=item hosts

An array ref containing hosts entries to be queried for packages.

An example entry would like this:

    {   'scheme' => 'ftp',
        'path' => '/pub/CPAN/',
        'host' => 'ftp.cpan.org'
    },

=cut

    ### default host list
    $Conf->{'conf'}->{'hosts'} = [
            {
                'scheme' => 'ftp',
                'path' => '/pub/CPAN/',
                'host' => 'ftp.cpan.org'
            },
            {
                'scheme' => 'http',
                'path' => '/',
                'host' => 'www.cpan.org'
            },
            {
                'scheme' => 'ftp',
                'path' => '/',
                'host' => 'cpan.hexten.net'
            },
            {
                'scheme' => 'ftp',
                'path' => '/CPAN/',
                'host' => 'cpan.cpantesters.org'
            },
            {
                'scheme' => 'ftp',
                'path' => '/pub/languages/perl/CPAN/',
                'host' => 'ftp.funet.fi'
            }
        ];

=item allow_build_interactivity

Boolean flag to indicate whether 'perl Makefile.PL' and similar
are run interactively or not. Defaults to 'true'.

=cut

        $