... | ... |
@@ -133,20 +133,20 @@ sub blob_diffs { |
133 | 133 |
sub blob { |
134 | 134 |
my ($self, $user, $project, $rev, $file) = @_; |
135 | 135 |
|
136 |
- # Blob content |
|
137 |
- my $bid = $self->path_to_id($user, $project, $rev, $file, 'blob') |
|
136 |
+ # Blob |
|
137 |
+ my $hash = $self->path_to_hash($user, $project, $rev, $file, 'blob') |
|
138 | 138 |
or croak 'Cannot find file'; |
139 | 139 |
my @cmd = $self->cmd( |
140 | 140 |
$user, |
141 | 141 |
$project, |
142 | 142 |
'cat-file', |
143 | 143 |
'blob', |
144 |
- $bid |
|
144 |
+ $hash |
|
145 | 145 |
); |
146 | 146 |
open my $fh, '-|', @cmd |
147 |
- or croak "Can't cat $file, $bid"; |
|
147 |
+ or croak "Can't cat $file, $hash"; |
|
148 | 148 |
|
149 |
- # Parse lines |
|
149 |
+ # Format lines |
|
150 | 150 |
my $lines =[]; |
151 | 151 |
while (my $line = $self->_dec(scalar <$fh>)) { |
152 | 152 |
chomp $line; |
... | ... |
@@ -157,25 +157,11 @@ sub blob { |
157 | 157 |
return $lines; |
158 | 158 |
} |
159 | 159 |
|
160 |
-sub blob_plain { |
|
161 |
- my ($self, $user, $project, $rev, $path) = @_; |
|
162 |
- |
|
163 |
- # Get blob |
|
164 |
- my @cmd = $self->cmd($user, $project, 'cat-file', 'blob', "$rev:$path"); |
|
165 |
- open my $fh, "-|", @cmd |
|
166 |
- or croak 500, "Open git-cat-file failed"; |
|
167 |
- local $/; |
|
168 |
- my $content = $self->_dec(scalar <$fh>); |
|
169 |
- close $fh or croak 'Reading git-shortlog failed'; |
|
170 |
- |
|
171 |
- return $content; |
|
172 |
-} |
|
173 |
- |
|
174 | 160 |
sub blob_mimetype { |
175 | 161 |
my ($self, $user, $project, $rev, $file) = @_; |
176 | 162 |
|
177 | 163 |
# Blob content |
178 |
- my $bid = $self->path_to_id($user, $project, $rev, $file, 'blob') |
|
164 |
+ my $bid = $self->path_to_hash($user, $project, $rev, $file, 'blob') |
|
179 | 165 |
or croak 'Cannot find file'; |
180 | 166 |
my @cmd = $self->cmd( |
181 | 167 |
$user, |
... | ... |
@@ -633,7 +619,7 @@ sub branches_count { |
633 | 619 |
return $branches_count; |
634 | 620 |
} |
635 | 621 |
|
636 |
-sub path_to_id { |
|
622 |
+sub path_to_hash { |
|
637 | 623 |
my ($self, $user, $project, $rev, $path, $type) = @_; |
638 | 624 |
|
639 | 625 |
# Get blob id or tree id (command "git ls-tree") |
... | ... |
@@ -1543,7 +1529,7 @@ sub trees { |
1543 | 1529 |
# Get tree |
1544 | 1530 |
my $tid; |
1545 | 1531 |
if (defined $dir && $dir ne '') { |
1546 |
- $tid = $self->path_to_id($user, $project, $rev, $dir, 'tree'); |
|
1532 |
+ $tid = $self->path_to_hash($user, $project, $rev, $dir, 'tree'); |
|
1547 | 1533 |
} |
1548 | 1534 |
else { |
1549 | 1535 |
my $commit = $self->get_commit($user, $project, $rev); |
... | ... |
@@ -2,13 +2,17 @@ |
2 | 2 |
use Mojo::ByteStream (); |
3 | 3 |
|
4 | 4 |
# README |
5 |
- my $readme; |
|
6 |
- eval { $readme = app->git->blob_plain($user, $project, $rev, 'README') }; |
|
7 |
- my $readme_e = Mojo::ByteStream->new($readme)->xml_escape->to_string; |
|
8 |
- $readme_e =~ s#(^|\s)(http(?:s)?://.+?)($|\s)#$1<a href="$2">$2</a>$3#msg; |
|
5 |
+ my $lines; |
|
6 |
+ eval { $lines = app->git->blob($user, $project, $rev, 'README') }; |
|
7 |
+ my $readme_e; |
|
8 |
+ if ($lines) { |
|
9 |
+ my $readme = join "\n", @$lines; |
|
10 |
+ $readme_e = Mojo::ByteStream->new($readme)->xml_escape->to_string; |
|
11 |
+ $readme_e =~ s#(^|\s)(http(?:s)?://.+?)($|\s)#$1<a href="$2">$2</a>$3#msg; |
|
12 |
+ } |
|
9 | 13 |
%> |
10 | 14 |
|
11 |
-% if (defined $readme) { |
|
15 |
+% if (defined $readme_e) { |
|
12 | 16 |
<div class="border-gray bk-gray-light" style="border-radius:1px;font-size:17px;padding:10px"> |
13 | 17 |
<i class="icon-book" style="margin-top:2px"></i> README |
14 | 18 |
</div> |