blib/lib/App/Greple/git.pm | |||
---|---|---|---|
Criterion | Covered | Total | % |
statement | 17 | 26 | 65.3 |
branch | 0 | 4 | 0.0 |
condition | 0 | 3 | 0.0 |
subroutine | 6 | 7 | 85.7 |
pod | 0 | 1 | 0.0 |
total | 23 | 41 | 56.1 |
line | stmt | bran | cond | sub | pod | time | code |
---|---|---|---|---|---|---|---|
1 | package App::Greple::git; | ||||||
2 | |||||||
3 | our $VERSION = "0.04"; | ||||||
4 | |||||||
5 | 1 | 1 | 797 | use v5.14; | |||
1 | 4 | ||||||
6 | 1 | 1 | 6 | use warnings; | |||
1 | 1 | ||||||
1 | 26 | ||||||
7 | |||||||
8 | 1 | 1 | 673 | use Data::Dumper; | |||
1 | 7246 | ||||||
1 | 66 | ||||||
9 | 1 | 1 | 518 | use App::Greple::Common; | |||
1 | 694 | ||||||
1 | 163 | ||||||
10 | 1 | 1 | 7 | use List::Util qw(any); | |||
1 | 2 | ||||||
1 | 101 | ||||||
11 | |||||||
12 | 1 | 1 | 472 | use File::Spec::Functions qw(canonpath); | |||
1 | 914 | ||||||
1 | 219 | ||||||
13 | *canon = \&canonpath; | ||||||
14 | |||||||
15 | sub git_file_or_die { | ||||||
16 | 0 | 0 | 0 | my %arg = @_; | |||
17 | 0 | 0 | my $name = delete $arg{&FILELABEL} or die; | ||||
18 | 0 | my $path = canon($name); | |||||
19 | 0 | 0 | state $git_files //= do { | ||||
20 | 0 | my @files = `git ls-files`; | |||||
21 | 0 | chomp @files; | |||||
22 | 0 | +{ map { canon($_) => 1 } @files }; | |||||
0 | |||||||
23 | }; | ||||||
24 | 0 | 0 | $git_files->{$path} or die "SKIP $name"; | ||||
25 | } | ||||||
26 | |||||||
27 | 1; | ||||||
28 | |||||||
29 | =encoding utf-8 | ||||||
30 | |||||||
31 | =head1 NAME | ||||||
32 | |||||||
33 | git - Greple git module | ||||||
34 | |||||||
35 | =head1 SYNOPSIS | ||||||
36 | |||||||
37 | greple -Mgit ... | ||||||
38 | |||||||
39 | =head1 DESCRIPTION | ||||||
40 | |||||||
41 | App::Greple::git is a greple module to support git command | ||||||
42 | |||||||
43 | =head1 OPTIONS | ||||||
44 | |||||||
45 | =over 4 | ||||||
46 | |||||||
47 | =item B<--color-blame-line>, B<--color-blame> | ||||||
48 | |||||||
49 | =item B<--color-blame-label> | ||||||
50 | |||||||
51 | Read L |
||||||
52 | id. Option B<--color-blame> and B<--color-blame-line> colorize whole | ||||||
53 | line, while B<--color-blame-label> does only labels. | ||||||
54 | |||||||
55 | Set F<$HOME/.gitconfig> like this: | ||||||
56 | |||||||
57 | [pager] | ||||||
58 | blame = greple -Mgit --color-blame-line | env LESSANSIENDCHARS=mK less -cR | ||||||
59 | |||||||
60 | =begin html | ||||||
61 | |||||||
62 |
|
||||||
63 | |||||||
64 | =end html | ||||||
65 | |||||||
66 | =begin html | ||||||
67 | |||||||
68 |
|
||||||
69 | |||||||
70 | =end html | ||||||
71 | |||||||
72 | =item B<--color-header-by-author> | ||||||
73 | |||||||
74 | Colorize the commit header in a different color based on the author field. | ||||||
75 | |||||||
76 | =item B<--color-header-by-field> I |
||||||
77 | |||||||
78 | Generic version of log header colorization. Take a case-insensitive | ||||||
79 | field name as a parameter. B<--color-header-by-author> is defined as | ||||||
80 | follows: | ||||||
81 | |||||||
82 | option --color-header-by-author --color-header-by-field Author | ||||||
83 | |||||||
84 | =item B<--only-git-files> | ||||||
85 | |||||||
86 | Only files under git control from a given file are processed, all | ||||||
87 | other files are ignored. This option is intended to be used in | ||||||
88 | combination with B<--glob> or other options that allow many files to | ||||||
89 | be processed at once. To target all files under git control, use the | ||||||
90 | B<--git> option in the B<-Mdig> module. | ||||||
91 | |||||||
92 | =back | ||||||
93 | |||||||
94 | =head1 ENVIRONMENT | ||||||
95 | |||||||
96 | =over 4 | ||||||
97 | |||||||
98 | =item B |
||||||
99 | |||||||
100 | =item B |
||||||
101 | |||||||
102 | Since B |
||||||
103 | convenient to set B |
||||||
104 | |||||||
105 | LESS=-cR | ||||||
106 | LESSANSIENDCHARS=mK | ||||||
107 | |||||||
108 | =back | ||||||
109 | |||||||
110 | =head1 INSTALL | ||||||
111 | |||||||
112 | =head2 CPANMINUS | ||||||
113 | |||||||
114 | $ cpanm App::Greple::git | ||||||
115 | |||||||
116 | =head1 SEE ALSO | ||||||
117 | |||||||
118 | L |
||||||
119 | |||||||
120 | L |
||||||
121 | |||||||
122 | =head1 AUTHOR | ||||||
123 | |||||||
124 | Kazumasa Utashiro | ||||||
125 | |||||||
126 | =head1 LICENSE | ||||||
127 | |||||||
128 | Copyright 2021-2023 Kazumasa Utashiro. | ||||||
129 | |||||||
130 | This library is free software; you can redistribute it and/or modify | ||||||
131 | it under the same terms as Perl itself. | ||||||
132 | |||||||
133 | =cut | ||||||
134 | |||||||
135 | __DATA__ |