Lines Matching refs:data

88     my $data;
95 $data->{verbose} = $verbose;
96 $data->{mode} = defined $mode ? $mode : oct '777';
127 $data->{$k} = $arg->{$k};
134 $data->{mode} = delete $data->{mask} if exists $data->{mask};
135 $data->{mode} = oct '777' unless exists $data->{mode};
136 ${ $data->{error} } = [] if exists $data->{error};
138 $data->{owner} = delete $data->{user} if exists $data->{user};
139 $data->{owner} = delete $data->{uid} if exists $data->{uid};
140 if ( exists $data->{owner} and $data->{owner} =~ /\D/ ) {
141 my $uid = ( getpwnam $data->{owner} )[2];
143 $data->{owner} = $uid;
146 _error( $data,
147 "unable to map $data->{owner} to a uid, ownership not changed"
149 delete $data->{owner};
152 if ( exists $data->{group} and $data->{group} =~ /\D/ ) {
153 my $gid = ( getgrnam $data->{group} )[2];
155 $data->{group} = $gid;
158 _error( $data,
159 "unable to map $data->{group} to a gid, group ownership not changed"
161 delete $data->{group};
164 if ( exists $data->{owner} and not exists $data->{group} ) {
165 $data->{group} = -1; # chown will leave group unchanged
167 if ( exists $data->{group} and not exists $data->{owner} ) {
168 $data->{owner} = -1; # chown will leave owner unchanged
173 return _mkpath( $data, $paths );
177 my $data = shift;
195 push( @created, _mkpath( $data, [$parent] ) );
197 print "mkdir $path\n" if $data->{verbose};
198 if ( mkdir( $path, $data->{mode} ) ) {
200 if ( exists $data->{owner} ) {
203 if ( !chown $data->{owner}, $data->{group}, $path ) {
204 _error( $data,
205 "Cannot change ownership of $path to $data->{owner}:$data->{group}"
209 if ( exists $data->{chmod} ) {
213 if ( !chmod $data->{chmod}, $path ) {
214 _error( $data,
215 "Cannot change permissions of $path to $data->{chmod}" );
235 if ( $data->{error} ) {
236 push @{ ${ $data->{error} } }, { $path => $e };
273 my ($arg, $data, $paths);
278 $data->{verbose} = $verbose;
279 $data->{safe} = defined $safe ? $safe : 0;
304 $data->{$k} = $arg->{$k};
309 ${ $data->{error} } = [] if exists $data->{error};
310 ${ $data->{result} } = [] if exists $data->{result};
324 $data->{prefix} = '';
325 $data->{depth} = 0;
328 $data->{cwd} = getcwd() or do {
329 _error( $data, "cannot fetch initial working directory" );
332 for ( $data->{cwd} ) { /\A(.*)\Z/s; $_ = $1 } # untaint
339 _IS_MSWIN32 ? _slash_lc( $data->{cwd} ) : $data->{cwd};
344 _error( $data, "cannot remove path when cwd is $data->{cwd}", $p );
361 @{$data}{qw(device inode)} = ( lstat $data->{cwd} )[ 0, 1 ] or do {
362 _error( $data, "cannot stat initial working directory", $data->{cwd} );
366 return _rmtree( $data, \@clean_path );
370 my $data = shift;
388 $data->{prefix}
389 ? File::Spec->catfile( $data->{prefix}, $root )
413 $data->{safe}
422 _error( $data,
429 _error( $data, "cannot chdir to child", $canon );
436 _error( $data, "cannot stat current working directory", $canon );
457 $data->{safe}
463 _error( $data, "cannot make directory read+writeable", $canon );
470 _error( $data, "cannot opendir", $canon );
497 my $narg = {%$data};
499 ( $cur_dev, $cur_inode, $updir, $canon, $data->{depth} + 1 );
507 _error( $data, "cannot reset chmod", $canon );
511 chdir( $data->{cwd} )
513 _croak("cannot chdir to $data->{cwd} from $canon: $!, aborting.");
519 "cannot stat prior working directory $data->{cwd}: $!, aborting."
523 ( $data->{device} eq $cur_dev and $data->{inode} eq $cur_inode )
524 or _croak( "previous directory $data->{cwd} "
531 if ( $data->{depth} or !$data->{keep_root} ) {
532 if ( $data->{safe}
537 print "skipped $root\n" if $data->{verbose};
541 _error( $data, "cannot make directory writeable", $canon );
543 print "rmdir $root\n" if $data->{verbose};
545 push @{ ${ $data->{result} } }, $root if $data->{result};
549 _error( $data, "cannot remove directory", $canon );
558 $data,
575 $data->{safe}
583 print "skipped $root\n" if $data->{verbose};
592 _error( $data, "cannot make file writeable", $canon );
594 print "unlink $canon\n" if $data->{verbose};
599 push @{ ${ $data->{result} } }, $root if $data->{result};
602 _error( $data, "cannot unlink file", $canon );
604 or _error( $data,