# # Courier::Config class # # (C) 2003-2008 Julian Mehnle # $Id: Config.pm 210 2008-03-21 19:30:31Z julian $ # ############################################################################### =head1 NAME Courier::Config - Class providing configuration information for Perl modules related to the Courier MTA =cut package Courier::Config; use warnings; use strict; use version; use constant TRUE => (0 == 0); use constant FALSE => not TRUE; =head1 SYNOPSIS use Courier::Config; # Courier base configuration: my $config_dir = Courier::Config->config_dir; my $runtime_dir = Courier::Config->runtime_dir; my $courier_executable = Courier::Config->courier_executable; my $courier_version = Courier::Config->courier_version; # Courier::Filter configuration: my $filter_conf_file = Courier::Config->filter_conf_file; =head1 DESCRIPTION This class provides configuration information for Perl modules related to the Courier MTA, e.g. installation specific file system paths. =cut # Declarations: ############################################################################### =head2 Courier base configuration The following methods provide information about Courier's base configuration: =over =item B: returns I The base configuration directory of Courier. =cut use constant config_dir => '/etc/courier'; =item B: returns I The directory where Courier keeps the message queue (C, C, C) and courierfilter sockets (C, C). =cut use constant runtime_dir => '/var/lib/courier'; # Normally '/var/run/courier'. =item B: returns I The full path of the Courier daemon executable. =cut use constant courier_executable => '/usr/sbin/courier'; =item B: returns I The version number of the Courier installation. =cut my $courier_version; sub courier_version { my ($self) = @_; my $courier_executable = $self->courier_executable; if ( not defined($courier_version) and -x $courier_executable ) { my $courier_version_string = `$courier_executable --version`; if ( $? == 0 and $courier_version_string =~ /^Courier ([^ ]+)/ ) { $courier_version = version->new($1); } } return $courier_version; } =back =head2 Courier::Filter configuration The following Courier::Filter configuration information is provided: =over =item B: returns I The absolute file name of the Courier::Filter courier-filter-perl configuration file. =cut use constant filter_conf_file => config_dir . '/filters/courier-filter-perl.conf'; =back =cut # Support legacy method names: BEGIN { no warnings 'once'; *COURIER_CONFIG_DIR = \&config_dir; *COURIER_RUNTIME_DIR = \&runtime_dir; *COURIER_FILTER_CONF = \&filter_conf_file; } =head1 SEE ALSO For AVAILABILITY, SUPPORT, and LICENSE information, see L. =head1 AUTHOR Julian Mehnle =cut TRUE;