our
$VERSION
=
'0.01'
;
IS_TTY
=> !!(-t STDIN && (-t STDOUT || !(-f STDOUT || -c STDOUT))),
IS_ROOT
=> !!($> == 0),
DATE_FORMAT
=>
'%Y-%m-%d'
,
TIME_FORMAT
=>
'%H:%M:%S'
,
DATETIME_FORMAT
=>
'%Y-%m-%dT%H:%M:%S'
,
DATE_TIME_FORMAT
=>
'%Y-%m-%d %H:%M:%S'
,
};
our
%EXPORT_TAGS
= (
'GENERAL'
=> [
qw/
IS_TTY IS_ROOT
DATE_FORMAT TIME_FORMAT DATETIME_FORMAT DATE_TIME_FORMAT
/
],
'DIR'
=> [
qw/
PREFIX LOCALSTATEDIR SYSCONFDIR SRVDIR
BINDIR SBINDIR DATADIR DOCDIR LOCALEDIR MANDIR LOCALBINDIR
CACHEDIR LOGDIR SPOOLDIR RUNDIR LOCKDIR SHAREDSTATEDIR WEBDIR
/
],
);
our
@EXPORT
= (
@{
$EXPORT_TAGS
{GENERAL}},
);
our
@EXPORT_OK
= (
map
{@{
$_
}}
values
%EXPORT_TAGS
);
foreach
my
$k
(
keys
%EXPORT_TAGS
) {
next
if
exists
$EXPORT_TAGS
{(
lc
(
$k
))};
$EXPORT_TAGS
{(
lc
(
$k
))} =
$EXPORT_TAGS
{
$k
}
if
$k
=~ /^[A-Z_]+$/;
}
my
$prefix
=
$Config::Config
{
'prefix'
} //
''
;
my
$bindir
=
$Config::Config
{
'bin'
} // File::Spec->catdir(
$prefix
,
'bin'
);
my
$localstatedir
=
$prefix
eq
'/usr'
?
'/var'
: File::Spec->catdir(
$prefix
,
'var'
);
my
$sysconfdir
=
$prefix
eq
'/usr'
?
'/etc'
: File::Spec->catdir(
$prefix
,
'etc'
);
my
$srvdir
=
$prefix
eq
'/usr'
?
'/srv'
: File::Spec->catdir(
$prefix
,
'srv'
);
*PREFIX
=
sub
{
$prefix
};
*LOCALSTATEDIR
=
sub
{
$localstatedir
};
*SYSCONFDIR
=
sub
{
$sysconfdir
};
*SRVDIR
=
sub
{
$srvdir
};
*BINDIR
=
sub
{
$bindir
};
*SBINDIR
=
sub
{ state
$sbindir
= File::Spec->catdir(
$prefix
,
'sbin'
) };
*DATADIR
=
sub
{ state
$datadir
= File::Spec->catdir(
$prefix
,
'share'
) };
*DOCDIR
=
sub
{ state
$docdir
= File::Spec->catdir(
$prefix
,
'share'
,
'doc'
) };
*LOCALEDIR
=
sub
{ state
$localedir
= File::Spec->catdir(
$prefix
,
'share'
,
'locale'
) };
*MANDIR
=
sub
{ state
$mandir
= File::Spec->catdir(
$prefix
,
'share'
,
'man'
) };
*LOCALBINDIR
=
sub
{ state
$localbindir
= File::Spec->catdir(
$prefix
,
'local'
,
'bin'
) };
*CACHEDIR
=
sub
{ state
$cachedir
= File::Spec->catdir(
$localstatedir
,
'cache'
) };
*LOGDIR
=
sub
{ state
$logdir
= File::Spec->catdir(
$localstatedir
,
'log'
) };
*SPOOLDIR
=
sub
{ state
$spooldir
= File::Spec->catdir(
$localstatedir
,
'spool'
) };
*RUNDIR
=
sub
{ state
$rundir
= File::Spec->catdir(
$localstatedir
,
'run'
) };
*LOCKDIR
=
sub
{ state
$lockdir
= File::Spec->catdir(
$localstatedir
,
'lock'
) };
*SHAREDSTATEDIR
=
sub
{ state
$sharedstatedir
= File::Spec->catdir(
$localstatedir
,
'lib'
) };
*WEBDIR
=
sub
{ state
$webdir
= File::Spec->catdir(
$localstatedir
,
'www'
) };
1;