Showing 2 changed files with 17 additions and 27 deletions
+8 -22
lib/Gitprep/Git.pm
... ...
@@ -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);
+9 -5
templates/include/readme.html.ep
... ...
@@ -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>