close $fd;
}
+sub insert_html_file {
+ my $file_name = shift;
+ insert_file($file_name);
+}
+
+sub insert_text_file {
+ my $file_name = shift;
+
+ open my $fd, $file_name or die_error(500, "Couldn't open $file_name");
+
+ print "<pre>";
+ while (my $line = <$fd>) {
+ print to_utf8($line);
+ }
+ print "</pre>";
+}
+
+sub insert_markdown_file {
+ my $file_name = shift;
+
+ # TODO: Make this a config option?
+ my $markdown_cmd = "/usr/bin/markdown";
+
+ open my $fd, quote_command($markdown_cmd, $file_name)." |"
+ or die_error(500, "Couldn't open $file_name");
+
+ while (my $line = <$fd>) {
+ print to_utf8($line);
+ }
+}
+
## ......................................................................
## mimetype related functions
print "<div class=\"page_path\">";
+ my $pretty_project = $project;
+ $pretty_project =~ s/\/\.git$//;
print $cgi->a({-href => href(action=>"tree", hash_base=>$hb),
- -title => 'tree root'}, to_utf8("[$project]"));
+ -title => 'tree root'}, to_utf8("[$pretty_project]"));
print " / ";
if (defined $name) {
my @dirname = split '/', $name;
}
print "</td>\n";
}
+ my $pretty_path = $pr->{'path'};
+ $pretty_path =~ s/\/\.git$//;
print "<td>" . $cgi->a({-href => href(project=>$pr->{'path'}, action=>"summary"),
-class => "list"},
- esc_html_match_hl($pr->{'path'}, $search_regexp)) .
+ esc_html_match_hl($pretty_path, $search_regexp)) .
"</td>\n" .
"<td>" . $cgi->a({-href => href(project=>$pr->{'path'}, action=>"summary"),
-class => "list",
}
git_print_page_nav('tree','', $hash_base, undef, undef,
join(' | ', @views_nav));
- git_print_header_div('commit', esc_html($co{'title'}) . $ref, $hash_base);
+ #git_print_header_div('commit', esc_html($co{'title'}) . $ref, $hash_base);
} else {
undef $hash_base;
print "<div class=\"page_nav\">\n";
}
print "</table>\n" .
"</div>";
+
+ # If present, print one of the following, in order:
+ # README.md, README.txt, README, README.html.
+ my $cwd_path = "$projectroot/$project";
+ $cwd_path =~ s/\.git$//;
+ $cwd_path = $cwd_path . $basedir;
+ if (!$prevent_xss && -s $cwd_path . "README.md") {
+ print "<div class=\"readme\">\n";
+ insert_markdown_file($cwd_path . "README.md");
+ print "\n</div>\n"; # class="readme"
+ } elsif (!$prevent_xss && -s $cwd_path . "README.txt") {
+ print "<div class=\"readme\">\n";
+ insert_text_file($cwd_path . "README.txt");
+ print "\n</div>\n"; # class="readme"
+ } elsif (!$prevent_xss && -s $cwd_path . "README") {
+ print "<div class=\"readme\">\n";
+ insert_text_file($cwd_path . "README");
+ print "\n</div>\n"; # class="readme"
+ } elsif (!$prevent_xss && -s $cwd_path . "README.html") {
+ print "<div class=\"readme\">\n";
+ insert_html_file($cwd_path . "README.html");
+ print "\n</div>\n"; # class="readme"
+ }
+
git_footer_html();
}