use
5.00503;
use
vars
qw{$VERSION @ISA}
;
BEGIN {
$VERSION
=
'0.90_03'
;
@ISA
=
'File::HomeDir::Driver'
;
}
SCOPE: {
local
$@;
eval
"use prefork 'Mac::Files'"
;
}
sub
my_home {
my
$class
=
shift
;
if
(
defined
$ENV
{HOME} ) {
return
$ENV
{HOME};
}
SCOPE: {
local
$@;
eval
{
my
$home
=
$class
->my_desktop;
return
$home
if
$home
and -d
$home
;
};
}
SCOPE: {
local
$SIG
{
'__DIE__'
} =
''
;
my
$home
= (
getpwuid
($<))[7];
return
$home
if
$home
and -d
$home
;
}
Carp::croak(
"Could not locate current user's home directory"
);
}
sub
my_desktop {
my
$class
=
shift
;
local
$SIG
{
'__DIE__'
} =
''
;
my
$home
= Mac::Files::FindFolder(
Mac::Files::kOnSystemDisk(),
Mac::Files::kDesktopFolderType(),
);
return
$home
if
$home
and -d
$home
;
Carp::croak(
"Could not locate current user's desktop"
);
}
sub
users_home {
my
(
$class
,
$name
) =
@_
;
SCOPE: {
local
$SIG
{
'__DIE__'
} =
''
;
my
$home
= (
getpwnam
(
$name
))[7];
return
$home
if
defined
$home
and -d
$home
;
}
Carp::croak(
"Failed to find home directory for user '$name'"
);
}
1;