XAS
view release on metacpan or search on metacpan
lib/XAS/Lib/Modules/Environment.pm view on Meta::CPAN
$self->{'spool'} = Dir(defined($ENV{'XAS_SPOOL'})
? $ENV{'XAS_SPOOL'}
: [$self->{root}, 'var', 'spool']);
$self->{'mxmailer'} = defined($ENV{'XAS_MXMAILER'})
? $ENV{'XAS_MXMAILER'}
: 'smtp';
$self->{'username'} = Win32::LoginName();
} else {
# this assumes a unix like working environment
$self->{'host'} = defined($ENV{'XAS_HOSTNAME'})
? $ENV{'XAS_HOSTNAME'}
: `hostname -s`;
chomp($self->{'host'});
$self->{'root'} = Dir(defined($ENV{'XAS_ROOT'})
? $ENV{'XAS_ROOT'}
: ['/']);
$self->{'etc'} = Dir(defined($ENV{'XAS_ETC'})
? $ENV{'XAS_ETC'}
: [$self->{root}, 'etc', 'xas']);
$self->{'tmp'} = Dir(defined($ENV{'XAS_TMP'})
? $ENV{'XAS_TMP'}
: ['/', 'tmp']);
$self->{'var'} = Dir(defined($ENV{'XAS_VAR'})
? $ENV{'XAS_VAR'}
: [$self->{root}, 'var']);
$self->{'lib'} = Dir(defined($ENV{'XAS_LIB'})
? $ENV{'XAS_LIB'}
: [$self->{root}, 'var', 'lib', 'xas']);
$self->{'log'} = Dir(defined($ENV{'XAS_LOG'})
? $ENV{'XAS_LOG'}
: [$self->{root}, 'var', 'log', 'xas']);
$self->{'locks'} = Dir(defined($ENV{'XAS_LOCKS'})
? $ENV{'XAS_LOCKS'}
: [$self->{root}, 'var', 'lock', 'xas']);
$self->{'run'} = Dir(defined($ENV{'XAS_RUN'})
? $ENV{'XAS_RUN'}
: [$self->{root}, 'var', 'run', 'xas']);
$self->{'spool'} = Dir(defined($ENV{'XAS_SPOOL'})
? $ENV{'XAS_SPOOL'}
: [$self->{root}, 'var', 'spool', 'xas']);
$self->{'mxmailer'} = defined($ENV{'XAS_MXMAILER'})
? $ENV{'XAS_MXMAILER'}
: 'sendmail';
$self->{'username'} = getpwuid($<);
}
# build some common paths
$self->{'sbin'} = Dir(defined($ENV{'XAS_SBIN'})
? $ENV{'XAS_SBIN'}
: [$self->{'root'}, 'sbin']);
$self->{'bin'} = Dir(defined($ENV{'XAS_BIN'})
? $ENV{'XAS_BIN'}
: [$self->{'root'}, 'bin']);
# define some logging options
$self->{'log_type'} = defined($ENV{'XAS_LOG_TYPE'})
? $ENV{'XAS_LOG_TYPE'}
: 'console';
$self->{'log_facility'} = defined($ENV{'XAS_LOG_FACILITY'})
? $ENV{'XAS_LOG_FACILITY'}
: 'local6';
# create some common file names
($name, $path, $suffix) = fileparse($0, qr{\..*});
$self->{'log_file'} = File($self->{'log'}, $name . '.log');
$self->{'pid_file'} = File($self->{'run'}, $name . '.pid');
$self->{'cfg_file'} = File($self->{'etc'}, $name . '.ini');
# build some methods, saves typing
for my $datum (qw( log_file pid_file cfg_file )) {
$self->class->methods($datum => sub {
my $self = shift;
my ($p) = validate_params(\@_, [
{optional => 1, default => undef, isa => 'Badger::Filesystem::File' }
],
"xas.lib.modules.environment.$datum"
);
$self->{$datum} = $p if (defined($p));
return $self->{$datum};
});
}
for my $datum (qw( root etc sbin tmp var bin lib log locks run spool )) {
$self->class->methods($datum => sub {
my $self = shift;
my ($p) = validate_params(\@_, [
{optional => 1, default => undef, isa => 'Badger::Filesystem::Directory'}
],
"xas.lib.modules.environment.$datum"
);
( run in 1.555 second using v1.01-cache-2.11-cpan-39bf76dae61 )