No-Worries
view release on metacpan or search on metacpan
lib/No/Worries/Stat.pm view on Meta::CPAN
@todo = ();
if ($message->{user} and $stat->[ST_UID] != $option->{uid}) {
$stat->[ST_UID] = $option->{uid};
push(@todo, $message->{user});
}
if ($message->{group} and $stat->[ST_GID] != $option->{gid}) {
$stat->[ST_GID] = $option->{gid};
push(@todo, $message->{group});
}
return(0) unless @todo and $option->{callback}->($path, "@todo");
chown($stat->[ST_UID], $stat->[ST_GID], $path)
or dief("cannot chown(%d, %d, %s): %s",
$stat->[ST_UID], $stat->[ST_GID], $path, $!);
return(1)
}
#
# ensure proper permissions
#
sub _ensure_mode ($$$$) {
my($path, $stat, $option, $message) = @_;
lib/No/Worries/Stat.pm view on Meta::CPAN
=item stat_type(MODE)
given the file mode (C<ST_MODE> field), return the file type as a string;
possible return values are: "block device", "character device", "directory",
"door", "event port", "network file", "pipe", "plain file", "socket",
"symlink", "unknown" and "whiteout".
=item stat_ensure(PATH[, OPTIONS])
make sure the given path has the expected file "status" (w.r.t. stat()) and
call chown(), chmod() or utime() if needed, returning the number of changes
performed; supported options:
=over
=item * C<user>: expected user name or uid
=item * C<group>: expected group name or gid
=item * C<mode>: expected mode specification (see below)
( run in 0.875 second using v1.01-cache-2.11-cpan-5511b514fd6 )