line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package SVK::Log::Filter::Mndrix; |
2
|
|
|
|
|
|
|
|
3
|
1
|
|
|
1
|
|
39122
|
use warnings; |
|
1
|
|
|
|
|
3
|
|
|
1
|
|
|
|
|
35
|
|
4
|
1
|
|
|
1
|
|
7
|
use strict; |
|
1
|
|
|
|
|
2
|
|
|
1
|
|
|
|
|
40
|
|
5
|
|
|
|
|
|
|
|
6
|
1
|
|
|
1
|
|
6
|
use base qw( SVK::Log::Filter::Output ); |
|
1
|
|
|
|
|
1
|
|
|
1
|
|
|
|
|
993
|
|
7
|
|
|
|
|
|
|
use Perl6::Form; |
8
|
|
|
|
|
|
|
use Text::Autoformat; |
9
|
|
|
|
|
|
|
use Time::Local qw( timegm ); |
10
|
|
|
|
|
|
|
use POSIX qw( strftime ); |
11
|
|
|
|
|
|
|
use Term::ReadKey; |
12
|
|
|
|
|
|
|
|
13
|
|
|
|
|
|
|
our $VERSION = '0.0.3'; |
14
|
|
|
|
|
|
|
|
15
|
|
|
|
|
|
|
sub revision { |
16
|
|
|
|
|
|
|
my ($self, $args) = @_; |
17
|
|
|
|
|
|
|
my $props = $args->{props}; |
18
|
|
|
|
|
|
|
my $rev = $args->{rev}; |
19
|
|
|
|
|
|
|
my $stash = $args->{stash}; |
20
|
|
|
|
|
|
|
|
21
|
|
|
|
|
|
|
my $author = $props->{'svn:author'} || '(none)'; |
22
|
|
|
|
|
|
|
my $message = $props->{'svn:log'}; |
23
|
|
|
|
|
|
|
$message = q{} if !defined $message; |
24
|
|
|
|
|
|
|
my $columns = $stash->{quiet} |
25
|
|
|
|
|
|
|
? $ENV{COLUMNS} || (GetTerminalSize())[0] || 80 |
26
|
|
|
|
|
|
|
: 80 |
27
|
|
|
|
|
|
|
; |
28
|
|
|
|
|
|
|
|
29
|
|
|
|
|
|
|
# clean up messages with SVK lump headers |
30
|
|
|
|
|
|
|
if ( $message =~ s{\A \s* r\d+ [@] .*? $ \s* }{}xms ) { |
31
|
|
|
|
|
|
|
$message =~ s/^ \s //xmsg; |
32
|
|
|
|
|
|
|
} |
33
|
|
|
|
|
|
|
my ($first, $rest) = split /\n\n+/, $message, 2; |
34
|
|
|
|
|
|
|
$message = autoformat( |
35
|
|
|
|
|
|
|
$first || q{}, |
36
|
|
|
|
|
|
|
{ |
37
|
|
|
|
|
|
|
left => 0, |
38
|
|
|
|
|
|
|
right => $columns - 28, |
39
|
|
|
|
|
|
|
} |
40
|
|
|
|
|
|
|
); |
41
|
|
|
|
|
|
|
$message .= $rest if $stash->{verbose} and $rest; |
42
|
|
|
|
|
|
|
|
43
|
|
|
|
|
|
|
my ($day, $date, $time) = date_and_time( |
44
|
|
|
|
|
|
|
$props->{'svn:date'}, |
45
|
|
|
|
|
|
|
$stash->{quiet} ? '-' : ' ', |
46
|
|
|
|
|
|
|
); |
47
|
|
|
|
|
|
|
|
48
|
|
|
|
|
|
|
# determine the formats for the log message |
49
|
|
|
|
|
|
|
my $quiet_format = '{' . q{'}x($columns-28) . '}'; |
50
|
|
|
|
|
|
|
|
51
|
|
|
|
|
|
|
# handle the quiet form |
52
|
|
|
|
|
|
|
print form |
53
|
|
|
|
|
|
|
# r author date log message |
54
|
|
|
|
|
|
|
"{<<<} {<<<<<<} {<<<<<<<<<} $quiet_format", |
55
|
|
|
|
|
|
|
$rev, $author,$date, $message |
56
|
|
|
|
|
|
|
if $stash->{quiet}; |
57
|
|
|
|
|
|
|
return if $stash->{quiet}; |
58
|
|
|
|
|
|
|
|
59
|
|
|
|
|
|
|
# handle the other form |
60
|
|
|
|
|
|
|
my $get_remote_rev = $args->{get_remoterev} || sub {}; |
61
|
|
|
|
|
|
|
my $remote_rev = $get_remote_rev->($rev) || 'no'; |
62
|
|
|
|
|
|
|
$message = ' ' if !defined($message) or !length($message); |
63
|
|
|
|
|
|
|
print form |
64
|
|
|
|
|
|
|
'-----------------------------[ Revision : {>>>>} ]-----------------------------', |
65
|
|
|
|
|
|
|
$rev, |
66
|
|
|
|
|
|
|
'Author: {<<<<<<} Log:', |
67
|
|
|
|
|
|
|
$author, |
68
|
|
|
|
|
|
|
"Day : {<<<<<<<} {''''''''''''''''''''''''''''''''''''''''''''''''''''''''}", |
69
|
|
|
|
|
|
|
$day, $message, |
70
|
|
|
|
|
|
|
'Date : {<<<<<<<<<} {VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV}', |
71
|
|
|
|
|
|
|
$date, |
72
|
|
|
|
|
|
|
'Time : {<<<<<<} {VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV}', |
73
|
|
|
|
|
|
|
$time, |
74
|
|
|
|
|
|
|
'Remote: {<<<<} {VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV}', |
75
|
|
|
|
|
|
|
$remote_rev, |
76
|
|
|
|
|
|
|
' {VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV}', |
77
|
|
|
|
|
|
|
; |
78
|
|
|
|
|
|
|
|
79
|
|
|
|
|
|
|
} |
80
|
|
|
|
|
|
|
|
81
|
|
|
|
|
|
|
sub date_and_time { |
82
|
|
|
|
|
|
|
my ($raw, $s) = @_; |
83
|
|
|
|
|
|
|
|
84
|
|
|
|
|
|
|
my ( |
85
|
|
|
|
|
|
|
$year, |
86
|
|
|
|
|
|
|
$month, |
87
|
|
|
|
|
|
|
$d, |
88
|
|
|
|
|
|
|
$hour, |
89
|
|
|
|
|
|
|
$minute, |
90
|
|
|
|
|
|
|
$second, |
91
|
|
|
|
|
|
|
$nanos |
92
|
|
|
|
|
|
|
) = split /[-T:.]/, $raw; |
93
|
|
|
|
|
|
|
$year -= 1900; |
94
|
|
|
|
|
|
|
$month--; |
95
|
|
|
|
|
|
|
|
96
|
|
|
|
|
|
|
my $t = timegm($second, $minute, $hour, $d, $month, $year); |
97
|
|
|
|
|
|
|
my $day = strftime('%A', localtime($t) ); |
98
|
|
|
|
|
|
|
my $time = strftime('%T', localtime($t) ); |
99
|
|
|
|
|
|
|
my $date = strftime("\%e$s\%b$s\%Y", localtime($t) ); |
100
|
|
|
|
|
|
|
|
101
|
|
|
|
|
|
|
return ($day, $date, $time); |
102
|
|
|
|
|
|
|
} |
103
|
|
|
|
|
|
|
|
104
|
|
|
|
|
|
|
1; |
105
|
|
|
|
|
|
|
|
106
|
|
|
|
|
|
|
__END__ |