| line |
!l |
l&&!r |
l&&r |
condition |
|
3
|
1 |
0 |
0 |
@ARGV and @ARGV[0] =~ /^\w/ |
|
42
|
0 |
0 |
0 |
@_ and -f $_[0] |
|
71
|
0 |
0 |
0 |
&blessed($val) and $val->can('ymd') |
|
147
|
0 |
0 |
0 |
$start and $stop |
|
|
0 |
0 |
0 |
$start and $stop and $self->project |
|
261
|
0 |
0 |
0 |
$k eq 'stop' and $event->{$k} |
|
369
|
0 |
0 |
0 |
$res->{'start_at'} = $1 and $res->{'interval'} = $2 |
|
393
|
0 |
0 |
0 |
@project_re and not grep({$event->{'project'} =~ /$_/;} @project_re) |
|
394
|
0 |
0 |
0 |
$tags and not grep({$tags =~ /\b$_\b/;} @{$$event{'tags'};}) |
|
404
|
0 |
0 |
0 |
@{$res->{'log'};} and not $res->{'log'}[-1]{'project'} |
|
|
0 |
0 |
0 |
@{$res->{'log'};} and not $res->{'log'}[-1]{'project'} and $res->{'log'}[-1]{'start'}->mday == $event->{'start'}->mday |
|
423
|
0 |
0 |
0 |
$self->config('hours_per_month') and $res->{'interval'} eq 'month' |
|
430
|
0 |
0 |
0 |
$start->day_of_week != 0 and $start->day_of_week != 6 |
|
465
|
0 |
0 |
0 |
$self->month and not $self->year |
|
479
|
0 |
0 |
0 |
-t STDIN and $self->year || $self->month |
|
504
|
0 |
0 |
0 |
$code and $self->$code($event) |
|
521
|
0 |
0 |
0 |
$event->{'stop'} && $event->{'start'} && $event->{'stop'} - $event->{'start'} |
|
524
|
0 |
0 |
0 |
$event->{'stop'} and $event->{'seconds'} < $self->config('min_time') |
|
598
|
5 |
0 |
2 |
not $hms and $ymd =~ /:/ |
| line |
l |
!l |
condition |
|
21
|
0 |
1 |
$ENV{'APP_TT_DEBUG'} || 0 |
|
70
|
0 |
0 |
$event->{$_} // '' |
|
90
|
0 |
0 |
shift() || 'app' |
|
129
|
0 |
0 |
$event->{'project'} || '---' |
|
242
|
0 |
0 |
$ENV{'EDITOR'} || 'nano' |
|
|
0 |
0 |
$ENV{'TT_COLUMNS'} || 'date,project,hours,rounded,tags,description' |
|
|
0 |
0 |
$ENV{'TT_HOURS_PER_MONTH'} || 0 |
|
|
0 |
0 |
$ENV{'TT_MIN_TIME'} || 300 |
|
|
0 |
0 |
$ENV{'TT_ROUND_UP_AT'} || 30 |
|
|
0 |
0 |
$self->{'defaults'} ||= {'editor', $ENV{'EDITOR'} || 'nano', 'export_columns', $ENV{'TT_COLUMNS'} || 'date,project,hours,rounded,tags,description', 'hours_per_month', $ENV{'TT_HOURS_PER_MONTH'} || 0, 'min_time', $ENV{'TT_MIN_TIME'} || 300, 'round_up_at', $ENV{'TT_ROUND_UP_AT'} || 30} |
|
246
|
0 |
0 |
($self->{'config'}{$key} // $self->{'defaults'}{$key}) // die("Missing option '${key}'.\n") |
|
254
|
0 |
0 |
$event->{'path'} //= 'Not found' |
|
262
|
0 |
0 |
$event->{$k} // '' |
|
279
|
0 |
0 |
unlink $trc_file or die "rm ${trc_file}: $!" |
|
320
|
0 |
0 |
$log{$k} ||= {%$e, 'seconds', 0} |
|
364
|
0 |
0 |
$self->project || '.+' |
|
372
|
0 |
0 |
$res->{'fill'} ||= 1 |
|
375
|
0 |
0 |
$res->{'fill'} ||= 0 |
|
376
|
0 |
0 |
$res->{'interval'} ||= 'month' |
|
377
|
0 |
0 |
$res->{'start_at'} ||= 0 |
|
414
|
0 |
0 |
$self->group_by || 'nothing' |
|
471
|
0 |
0 |
$self->year || '\\d{4}' |
|
472
|
0 |
0 |
$self->month || '\\d{2}' |
|
474
|
0 |
0 |
$self->project || '[^.]+' |
|
505
|
0 |
0 |
unlink $found->{'file'} or die "rm $found->{'file'}: $!" |
|
514
|
0 |
0 |
$event->{'__CLASS__'} ||= 'App::TimeTracker::Data::Task' |
|
515
|
0 |
0 |
$self->description // '' |
|
517
|
0 |
0 |
$event->{'seconds'} ||= 0 |
|
518
|
0 |
0 |
$event->{'tags'} ||= [&uniq(@{[] unless $event->{'tags'};}, $self->_tags)] |
|
519
|
0 |
0 |
$event->{'user'} ||= scalar getpwuid $< |
|
589
|
0 |
0 |
$! || 1 |
| line |
l |
!l&&r |
!l&&!r |
condition |
|
43
|
0 |
0 |
0 |
$self->year or $self->month |
|
|
0 |
0 |
0 |
$self->year or $self->month or not -t STDIN |
|
179
|
0 |
0 |
0 |
$event->{'project'} ||= $self->project |
|
180
|
0 |
0 |
0 |
$event->{'project'} ||= (grep {/^[A-Za-z0-9-]+$/;} @args)[0] |
|
181
|
0 |
0 |
0 |
$event->{'project'} ||= basename(Cwd::getcwd()) |
|
182
|
0 |
0 |
0 |
$event->{'project'} ||= $self->config('project') |
|
246
|
0 |
0 |
0 |
$self->{'config'}{$key} // $self->{'defaults'}{$key} |
|
261
|
0 |
0 |
0 |
$k eq 'start' or $k eq 'stop' and $event->{$k} |
|
370
|
0 |
0 |
0 |
$res->{'start_at'} ||= $1 |
|
371
|
0 |
0 |
0 |
$res->{'interval'} ||= $1 |
|
395
|
0 |
0 |
0 |
$event->{'stop'} ||= $NOW + $NOW->tzoffset |
|
396
|
0 |
0 |
0 |
$event->{'seconds'} ||= $event->{'stop'} - $event->{'start'} |
|
457
|
0 |
0 |
0 |
$ENV{'TT_HOME'} || $ENV{'TIMETRACKER_HOME'} || 'File::Spec'->catdir('File::HomeDir'->my_home || 'File::Spec'->curdir, '.TimeTracker') |
|
459
|
0 |
0 |
0 |
readlink $root || $root |
|
479
|
0 |
0 |
0 |
$self->year || $self->month |
|
515
|
0 |
0 |
0 |
$event->{'description'} ||= $self->description // '' |
|
516
|
0 |
0 |
0 |
$event->{'project'} ||= $self->project |
|
570
|
0 |
0 |
0 |
not $event->{'start'} or $event->{'stop'} |
|
607
|
0 |
7 |
0 |
$t{'ref'} || $NOW |
|
609
|
2 |
5 |
0 |
$t{'Y'} ||= $ref->year |
|
610
|
3 |
4 |
0 |
$t{'m'} //= $ref->mon |
|
611
|
5 |
2 |
0 |
$t{'d'} //= $ref->mday |
|
612
|
4 |
0 |
0 |
defined $t{'H'} || defined $t{'M'} |
|
|
3 |
0 |
4 |
$t{'S'} //= defined $t{'H'} || defined $t{'M'} ? 0 : $ref->second |
|
613
|
4 |
0 |
3 |
$t{'M'} //= defined $t{'H'} ? 0 : $ref->min |
|
614
|
7 |
0 |
0 |
$t{'H'} //= $ref->hour |