File-Path
view release on metacpan or search on metacpan
lib/File/Path.pm view on Meta::CPAN
$data->{group} = $gid;
}
else {
_error( $data,
"unable to map $data->{group} to a gid, group ownership not changed"
);
delete $data->{group};
}
}
if ( exists $data->{owner} and not exists $data->{group} ) {
$data->{group} = -1; # chown will leave group unchanged
}
if ( exists $data->{group} and not exists $data->{owner} ) {
$data->{owner} = -1; # chown will leave owner unchanged
}
}
$paths = [@_];
}
return _mkpath( $data, $paths );
}
sub _mkpath {
my $data = shift;
my $paths = shift;
lib/File/Path.pm view on Meta::CPAN
# '-d $parent or $path eq $parent'
unless ( -d $parent or $path eq $parent ) {
push( @created, _mkpath( $data, [$parent] ) );
}
print "mkdir $path\n" if $data->{verbose};
if ( mkdir( $path, $data->{mode} ) ) {
push( @created, $path );
if ( exists $data->{owner} ) {
# NB: $data->{group} guaranteed to be set during initialisation
if ( !chown $data->{owner}, $data->{group}, $path ) {
_error( $data,
"Cannot change ownership of $path to $data->{owner}:$data->{group}"
);
}
}
if ( exists $data->{chmod} ) {
# Coverage note: It's not clear how we would trigger the next
# 'if' block. Failure of 'chmod' might first result in a
# system error: "Permission denied".
if ( !chmod $data->{chmod}, $path ) {
xt/setup_tests.pl view on Meta::CPAN
sub create_dir {
my $dir = shift;
my $mask = shift;
my $uid = shift;
my $gid = shift;
if (!-d $dir) {
mkdir $dir, $mask or die "mkdir $dir: $!\n";
}
if (defined $uid and defined $gid) {
chown $uid, $gid, $dir
or die "failed to chown dir $dir to ($uid,$gid)\n"
}
}
sub create_file {
my $file = shift;
my $mask = shift;
my $uid = shift;
my $gid = shift;
open OUT, "> $file" or die "Cannot open $file for output: $!\n";
print OUT <<EOM;
Test file for module File::Path
If you can read this, feel free to delete this file.
EOM
close OUT;
if ($uid and defined $gid) {
chown $uid, $gid, $file
or die "failed to chown $file to ($uid,$gid)\n"
}
if (defined $mask) {
chmod $mask, $file
or die "failed to chmod $file to $mask: $!\n";
}
}
( run in 0.485 second using v1.01-cache-2.11-cpan-5511b514fd6 )