| line |
!l |
l&&!r |
l&&r |
condition |
|
26
|
13 |
0 |
0 |
@_ == 1 && &isa_hash($_[0]) |
|
71
|
25 |
0 |
1 |
defined $attrs{$_} and not &isa_userdb($attrs{$_}) |
|
108
|
0 |
0 |
13 |
builtin::blessed($_[1]) and $_[1]->can("infof") |
|
117
|
23 |
0 |
25 |
defined $abs and -d $self->src_abs . $abs |
|
125
|
23 |
5 |
20 |
defined $_ && !$seen{$_}++ |
|
288
|
2 |
0 |
0 |
exists $rw->{$orig} and $rw->{$orig} ne $new |
|
308
|
1 |
1 |
176 |
length $_ && $_ ne '.' |
|
323
|
11 |
0 |
23 |
length $_ && $_ ne '.' |
|
344
|
6 |
4 |
59 |
length $_ && $_ ne '.' |
|
408
|
1 |
0 |
0 |
defined $self->_dst->can("dst_abs") and -f $self->_dst->dst_abs . 'etc/passwd' |
|
445
|
21 |
0 |
22 |
defined $file{'name'} and defined $file{'mode'} |
|
449
|
20 |
0 |
1 |
exists $self->{'src_path_set'}{$src_path} and not defined $file{'name'} |
|
486
|
34 |
6 |
0 |
not defined $file{'data'} || defined $file{'data_path'} and defined $file{'real_src_path'} |
|
|
40 |
0 |
0 |
not defined $file{'data'} || defined $file{'data_path'} and defined $file{'real_src_path'} and -e $self->{'src_abs'} . $file{'real_src_path'} |
|
489
|
39 |
0 |
1 |
defined $file{'user'} and not defined $file{'uid'} |
|
497
|
39 |
0 |
1 |
defined $file{'group'} and not defined $file{'gid'} |
|
532
|
11 |
20 |
9 |
length $dst_parent and not exists $self->{'dst_path_set'}{$dst_parent} |
|
535
|
1 |
8 |
0 |
$self->_dst->can("dst_abs") and -d $self->_dst->dst_abs . $dst_parent |
|
555
|
3 |
0 |
1 |
@dir{"dev", "ino", "mode", "nlink", "uid", "gid", "rdev", "size", "atime", "mtime", "ctime"} = lstat $self->{'src_abs'} . $dst_parent and S_ISDIR($dir{'mode'}) |
|
621
|
3 |
24 |
29 |
length $_[0] and !defined($filter) || &$filter(\%file) |
|
622
|
43 |
0 |
13 |
$is_dir and not delete $file{'prune'} |
|
640
|
13 |
13 |
51 |
$ent ne "." and $ent ne ".." |
|
697
|
0 |
0 |
0 |
$dst_userdb and not defined $dst_uid |
|
711
|
0 |
0 |
0 |
$dst_userdb and not defined $dst_gid |
|
733
|
13 |
0 |
1 |
$file->{'nlink'} > 1 and $file->{'dev'} |
|
|
0 |
0 |
1 |
$file->{'nlink'} > 1 and $file->{'dev'} and $file->{'ino'} |
|
810
|
0 |
0 |
0 |
$self->_has_rewrites and defined $interpreter || @libs |
|
814
|
0 |
0 |
0 |
defined $interpreter and $interpreter =~ /^$rre/u |
|
876
|
0 |
0 |
0 |
$self->_has_rewrites and ${$file->{'data'};} =~ $self->path_rewrite_regex |
|
911
|
0 |
0 |
0 |
$self->_can_trace_deps and length $file->{'src_path'} |
|
935
|
0 |
0 |
0 |
$self->_has_rewrites and ${$file->{'data'};} =~ $self->path_rewrite_regex |
|
956
|
3 |
2 |
0 |
not $target =~ m[^/]u and substr($file->{'data_path'}, 0, length $self->{'src_abs'}) ne $self->{'src_abs'} |
|
966
|
0 |
1 |
4 |
defined $abs_target and lstat $self->{'src_abs'} . $abs_target |
|
975
|
4 |
0 |
1 |
$self->_has_rewrites and length $file->{'src_path'} |
|
1006
|
0 |
1 |
0 |
@target_parts and $target_parts[0] eq ".." |
|
1010
|
1 |
0 |
1 |
@target_parts and $target_parts[0] ne ".." |
|
1018
|
1 |
0 |
3 |
@dst_parts and @dst_target |
|
|
1 |
0 |
3 |
@dst_parts and @dst_target and $dst_parts[0] eq $dst_target[0] |
|
1033
|
1 |
0 |
0 |
defined $file->{'rdev_major'} && defined $file->{'rdev_minor'} |
|
|
0 |
0 |
1 |
defined $file->{'rdev'} and not defined $file->{'rdev_major'} && defined $file->{'rdev_minor'} |
| line |
l |
!l |
condition |
|
100
|
0 |
0 |
$self->{'src_path_set'} //= {} |
|
101
|
3 |
0 |
$self->{'dst_path_set'} //= {} |
|
102
|
1 |
0 |
$self->{'dst_uid_used'} //= {} |
|
103
|
1 |
0 |
$self->{'dst_gid_used'} //= {} |
|
199
|
0 |
0 |
chdir $src_abs // die("chdir($src_abs): $!") |
|
200
|
0 |
0 |
chroot $src_abs // die("chroot($src_abs): $!") |
|
202
|
0 |
0 |
exec($cmd, @args) // die("exec: $!") |
|
224
|
1 |
2 |
$self->{'path_rewrite_map'} // {} |
|
232
|
1 |
1 |
$self->{'link_map'} //= {} |
|
236
|
0 |
0 |
$self->{'elf_interpreters'} //= {} |
|
269
|
0 |
0 |
$self->{'_log_name_widths'} //= [] |
|
282
|
1 |
1 |
$self->{'path_rewrite_map'} //= {} |
|
345
|
9 |
0 |
$path[0] // "" |
|
411
|
0 |
1 |
$self->{'_user_rewrite_map'} //= {} |
|
412
|
0 |
1 |
$self->{'_group_rewrite_map'} //= {} |
|
476
|
0 |
0 |
$file{'uid'} // 0 |
|
|
0 |
0 |
$file{'gid'} // 0 |
|
487
|
28 |
12 |
$file{'nlink'} //= 1 |
|
510
|
0 |
0 |
$self->on_collision // "ignore_if_same" |
|
514
|
0 |
0 |
$file{'src_path'} // "" |
|
635
|
5 |
0 |
$path //= "" |
|
667
|
1 |
22 |
$self->{'src_path_set'}{$path =~ s[^/][]ru} //= undef |
|
758
|
6 |
8 |
$file->{'src_path'} // "(data)" |
|
776
|
0 |
0 |
$rpath // "" |
|
917
|
0 |
0 |
$file->{'src_path'} // "" |
|
942
|
5 |
5 |
$dir->{'src_path'} // "(default)" |
| line |
l |
!l&&r |
!l&&!r |
condition |
|
64
|
0 |
7 |
0 |
$attrs{'tmp'} //= $attrs{'_dst'}->tmp |
|
66
|
7 |
6 |
0 |
$attrs{'tmp'} //= "File::Temp"->newdir |
|
67
|
0 |
13 |
0 |
$attrs{'log'} //= "Sys::Export::LogAny"->get_logger |
|
140
|
2 |
2 |
0 |
$self->{'src_exe_path'} //= $self->_build_src_exe_path |
|
166
|
0 |
3 |
0 |
$self->{'src_lib_path'} //= $self->_build_src_lib_path |
|
185
|
1 |
0 |
0 |
$self->src_abs eq '/' || eval {
do {
$self->_run_in_src('sh', '-c', 'exit 0');
1
}
} |
|
|
0 |
1 |
0 |
$self->{'can_run_in_src'} //= $self->src_abs eq '/' || eval {
do {
$self->_run_in_src('sh', '-c', 'exit 0');
1
}
} |
|
189
|
0 |
0 |
0 |
$cmd =~ m[/]u or -x $src_abs . $cmd |
|
190
|
0 |
0 |
0 |
$self->src_which($cmd) // croak("Can't locate '${cmd}' under $src_abs in PATH=" . $self->src_exe_PATH) |
|
194
|
0 |
0 |
0 |
pipe(my $err_r, my $err_w) // croak("pipe: $!") |
|
195
|
0 |
0 |
0 |
fork // croak("fork: $!") |
|
223
|
21 |
3 |
0 |
$self->{'path_rewrite_regex'} //= do {
my $rw = $self->{'path_rewrite_map'} // {};
!keys(%$rw) ? qr/(*FAIL)/u : qr/(@{[join("|", map(quotemeta($_), reverse sort(keys %$rw)))];})/u
} |
|
240
|
0 |
0 |
1 |
$self->{'_can_trace_deps'} //= do {
$self->log->debug("Error building _trace_deps function: $@") unless eval {
do {
$self->{'_trace_deps'} //= $self->_build__trace_deps
}
};
not !$self->{'_trace_deps'}
} |
|
241
|
0 |
0 |
1 |
$self->{'_trace_deps'} //= $self->_build__trace_deps |
|
248
|
0 |
0 |
0 |
$self->{'_trace_deps'} //= $self->_build__trace_deps |
|
285
|
0 |
0 |
2 |
$orig =~ m[^[.]+/]u or $new =~ m[^[.]+/]u |
|
356
|
0 |
0 |
0 |
$self->{'dst_userdb'} //= $self->_build_dst_userdb |
|
363
|
0 |
0 |
0 |
$self->{'src_userdb'} //= $self->_build_src_userdb |
|
377
|
0 |
0 |
0 |
$self->{'dst_userdb'} //= $self->_build_dst_userdb |
|
384
|
0 |
0 |
0 |
$self->{'src_userdb'} //= $self->_build_src_userdb |
|
406
|
1 |
0 |
0 |
$self->{'src_userdb'} //= $self->_build_src_userdb |
|
443
|
6 |
21 |
0 |
$file{'real_src_path'} //= $self->_src_parent_abs_path($file{'src_path'}) |
|
473
|
18 |
0 |
0 |
defined $file{'uid'} or defined $file{'gid'} |
|
476
|
0 |
0 |
18 |
$self->{'_user_rewrite_map'} or $self->{'_group_rewrite_map'} |
|
479
|
0 |
18 |
0 |
$file{'data_path'} //= $self->{'src_abs'} . $real_src_path |
|
480
|
0 |
18 |
0 |
$file{'name'} //= $self->get_dst_for_src($real_src_path) |
|
486
|
10 |
24 |
6 |
defined $file{'data'} || defined $file{'data_path'} |
|
490
|
0 |
1 |
0 |
$self->{'dst_userdb'} //= $self->_build_dst_userdb |
|
|
0 |
1 |
0 |
$dst_userdb //= ($self->{'dst_userdb'} //= $self->_build_dst_userdb) |
|
492
|
1 |
0 |
0 |
$dst_userdb->user($file{'user'}) // croak("Unknown user '$file{'user'}' for file '$file{'name'}'") |
|
498
|
0 |
0 |
0 |
$self->{'dst_userdb'} //= $self->_build_dst_userdb |
|
|
1 |
0 |
0 |
$dst_userdb //= ($self->{'dst_userdb'} //= $self->_build_dst_userdb) |
|
500
|
1 |
0 |
0 |
$dst_userdb->group($file{'group'}) // croak("Unknown group '$file{'group'}' for file '$file{'name'}'") |
|
545
|
3 |
1 |
2 |
not length $src_parent or $self->get_dst_for_src($src_parent) ne $dst_parent |
|
546
|
3 |
0 |
0 |
$src_parent //= $dst_parent |
|
573
|
31 |
0 |
0 |
$file{'mode'} // croak("attribute 'mode' is required, for $file{'name'}") |
|
574
|
0 |
1 |
1 |
S_ISBLK($mode) or S_ISCHR($mode) |
|
582
|
0 |
0 |
0 |
$file{'src_path'} // $file{'data_path'} |
|
|
0 |
0 |
0 |
($file{'src_path'} // $file{'data_path'}) // $file{'name'} |
|
621
|
5 |
29 |
19 |
!defined($filter) || &$filter(\%file) |
|
665
|
23 |
0 |
0 |
$path->{'src_path'} // $path->{'name'} |
|
|
0 |
0 |
0 |
($path->{'src_path'} // $path->{'name'}) // croak("Hashrefs passed to ->skip must include 'src_path' or 'name'") |
|
694
|
0 |
0 |
0 |
$dst_userdb or $self->{'_user_rewrite_map'} |
|
|
0 |
0 |
0 |
$dst_userdb or $self->{'_user_rewrite_map'} or $self->{'_group_rewrite_map'} |
|
698
|
0 |
0 |
0 |
$self->{'src_userdb'} //= $self->_build_src_userdb |
|
712
|
0 |
0 |
0 |
$self->{'src_userdb'} //= $self->_build_src_userdb |
|
797
|
0 |
0 |
0 |
$self->_resolve_src_library($_, $elf->{'rpath'}) // carp("Can't find lib $_ needed for $file->{'src_path'}") |
|
810
|
0 |
0 |
0 |
defined $interpreter || @libs |
|
907
|
0 |
0 |
0 |
$file->{'interpreter'} // $self->src_which("perl") |
|
1035
|
0 |
1 |
0 |
$file->{'rdev_major'} //= $major |
|
1036
|
0 |
1 |
0 |
$file->{'rdev_minor'} //= $minor |
|
1062
|
0 |
0 |
0 |
$!{'EAGAIN'} or $!{'EINTR'} |