line |
true |
false |
branch |
54
|
0 |
32 |
if 2 > @path |
58
|
0 |
46 |
unless $self->{'paths'}{$prev} |
59
|
0 |
46 |
unless $self->{'paths'}{$prev}{$next} |
68
|
1 |
68 |
unless open my $fh, '<:encoding(UTF-8)', $file |
69
|
2 |
66 |
unless -f $file |
71
|
0 |
10 |
unless close $fh |
76
|
18 |
15 |
if ({VERSION => 1}->{$op->{'op'}}) { } |
|
14 |
1 |
elsif ({before_upgrade => 1, upgrade => 1}->{$op->{'op'}}) { } |
78
|
11 |
7 |
if ($prev_version ne '') |
93
|
2 |
9 |
$restore ? : |
112
|
1 |
13 |
if $prev_version eq '' |
120
|
2 |
11 |
unless @op and {after_downgrade => 1, downgrade => 1}->{$op[0]{'op'}} || {RESTORE => 1}->{$op[0]{'op'}} |
122
|
2 |
9 |
if ({RESTORE => 1}->{$op2->{'op'}}) { } |
147
|
0 |
7 |
unless $self->{'on'}{$e} |
161
|
16 |
1 |
unless ($just_restored) |
173
|
2 |
30 |
if ($step->{'type'} eq 'RESTORE') |
180
|
0 |
12 |
unless (eval {
do {
my $just_restored = 0;
for (; 2 <= @path; shift @path) {
my($prev, $next) = @path;
unless ($just_restored) {
$self->_do({'type', 'BACKUP', 'version', $prev, 'prev_version', $prev, 'next_version', $next});
};
$just_restored = 0;
$from = $prev;
foreach my $step ($self->get_steps([$prev, $next])) {
$self->_do($step);
if ($step->{'type'} eq 'RESTORE') {
$just_restored = 1;
};
};
};
1
}
}) |
182
|
0 |
0 |
if ($from) |
183
|
0 |
0 |
unless eval {
do {
$self->_do({'type', 'RESTORE', 'version', $from, 'prev_version', $from, 'next_version', $path[-1]}, 1);
warn "Successfully undone interrupted migration by RESTORE $from\n";
1
}
} |
202
|
21 |
8 |
if $data eq '' |
206
|
0 |
8 |
unless close $fh |
216
|
35 |
13 |
if ($step->{'type'} eq 'BACKUP' or $step->{'type'} eq 'RESTORE' or $step->{'type'} eq 'VERSION') { } |
221
|
7 |
6 |
if ($cmd =~ /\A#!/ms) |
223
|
0 |
7 |
unless chmod 0700, $cmd |
225
|
0 |
13 |
unless system($cmd, @{$step->{'args'};}) == 0 |
230
|
0 |
48 |
unless (eval {
do {
if ($step->{'type'} eq 'BACKUP' or $step->{'type'} eq 'RESTORE' or $step->{'type'} eq 'VERSION') {
$self->{'on'}{$step->{'type'}}($step);
}
else {
my $cmd = $step->{'cmd'};
if ($cmd =~ /\A#!/ms) {
$cmd = _data2arg($cmd);
croak("chmod($cmd): $!") unless chmod 0700, $cmd;
};
die "'$step->{'type'}' failed: $cmd @{$step->{'args'};}\n" unless system($cmd, @{$step->{'args'};}) == 0;
print "\n";
};
1
}
}) |
231
|
0 |
0 |
if $is_fatal |
240
|
40 |
20 |
length $near ? : |
247
|
13 |
12 |
if $p->{$to} |
273
|
0 |
0 |
unless system($ENV{'SHELL'} // '/bin/sh') == 0 |
283
|
34 |
65 |
if ($t->{'op'} =~ /\ADEFINE[24]?\z/ms) { } |
|
33 |
32 |
elsif ({VERSION => 1}->{$t->{'op'}}) { } |
|
4 |
28 |
elsif ({RESTORE => 1}->{$t->{'op'}}) { } |
|
23 |
5 |
elsif ({before_upgrade => 1, upgrade => 1}->{$t->{'op'}} or {after_downgrade => 1, downgrade => 1}->{$t->{'op'}}) { } |
|
4 |
1 |
elsif ($macro{$t->{'op'}}) { } |
284
|
3 |
31 |
if 1 != @{$t->{'args'};} |
285
|
5 |
26 |
unless $t->{'args'}[0] =~ /\A(?!#)\S+\z/ms |
286
|
3 |
23 |
if $t->{'data'} ne '' |
288
|
3 |
20 |
if {DEFINE => 1, DEFINE2 => 1, DEFINE4 => 1, RESTORE => 1, VERSION => 1, after_downgrade => 1, before_upgrade => 1, downgrade => 1, upgrade => 1}->{$name} |
289
|
3 |
17 |
if $macro{$name} |
290
|
3 |
14 |
if ($t->{'op'} eq 'DEFINE') { } |
|
8 |
6 |
elsif ($t->{'op'} eq 'DEFINE2') { } |
|
6 |
0 |
elsif ($t->{'op'} eq 'DEFINE4') { } |
291
|
1 |
2 |
if @tokens < 1 |
293
|
1 |
1 |
unless {before_upgrade => 1, upgrade => 1}->{$t1->{'op'}} or {after_downgrade => 1, downgrade => 1}->{$t1->{'op'}} |
297
|
1 |
7 |
if @tokens < 2 |
300
|
1 |
6 |
unless {before_upgrade => 1, upgrade => 1}->{$t1->{'op'}} |
301
|
1 |
5 |
unless {after_downgrade => 1, downgrade => 1}->{$t2->{'op'}} |
305
|
1 |
5 |
if @tokens < 4 |
310
|
1 |
4 |
if $t1->{'op'} ne 'before_upgrade' |
311
|
1 |
3 |
if $t2->{'op'} ne 'upgrade' |
312
|
1 |
2 |
if $t3->{'op'} ne 'downgrade' |
313
|
1 |
1 |
if $t4->{'op'} ne 'after_downgrade' |
318
|
2 |
31 |
if 1 != @{$t->{'args'};} |
320
|
10 |
21 |
if not $t->{'args'}[0] =~ /\A\S+\z/ms or $t->{'args'}[0] =~ m([\x00-\x1F\x7F /?*`"'\\])ms |
321
|
1 |
20 |
if $t->{'data'} ne '' |
329
|
1 |
3 |
if 0 != @{$t->{'args'};} |
330
|
1 |
2 |
if $t->{'data'} ne '' |
338
|
4 |
5 |
unless @{$t->{'args'};} or $t->{'data'} =~ /\S/ms |
345
|
14 |
5 |
@{$t->{'args'};} ? : |
353
|
2 |
6 |
$_->{'data'} =~ /\S/ms ? : |
|
1 |
8 |
@{$_->{'args'};} ? : |
359
|
1 |
1 |
$t->{'data'} =~ /\S/ms ? : |
|
4 |
2 |
@{$t->{'args'};} ? : |
|
3 |
6 |
@args ? : |
361
|
1 |
8 |
unless @args |
378
|
0 |
8 |
unless state $bin = (grep {-x "$_/bash";} split(/:/ms, $ENV{'PATH'}, 0))[0] |
379
|
0 |
8 |
$script =~ /\A#!/ms ? : |
394
|
13 |
173 |
if (/\A#/ms) { } |
|
145 |
28 |
elsif (/\A(\S+)\s*(.*)\z/ms) { } |
|
25 |
3 |
elsif (/\A(?:\r?\n|[ ][ ].*)\z/ms) { } |
403
|
17 |
86 |
if ($param =~ s/\A"(.*)"\z/$1/ms) |
408
|
4 |
141 |
if $args =~ /\G(.+)\z/cgms |
417
|
22 |
3 |
if (@tokens) { } |
|
1 |
2 |
elsif (/\S/ms) { } |