debug log:
' . $l->linkify_2(ascii_html($log)) . ''; $res or return html_page($ctx, 404, \$log); my ($git, $oid, $type, $size, $di) = @$res; if ($size > $max_size) { # TODO: stream the raw file if it's gigantic, at least $log = '
Too big to show' . $log; return html_page($ctx, 500, \$log); } my $blob = $git->cat_file($oid); if (!$blob) { # WTF? my $e = "Failed to retrieve generated blob ($oid)"; $ctx->{env}->{'psgi.errors'}->print("$e ($git->{git_dir})\n"); $log = "
$e" . $log; return html_page($ctx, 500, \$log); } my $binary = index($$blob, "\0") >= 0; if ($fn) { my $h = [ 'Content-Length', $size, 'Content-Type' ]; push(@$h, ($binary ? 'application/octet-stream' : 'text/plain')); return [ 200, $h, [ $$blob ]]; } my $path = to_filename($di->{path_b} || $hints->{path_b} || 'blob'); my $raw_link = "(raw)"; if ($binary) { $log = "
$oid $type $size bytes (binary)" . " $raw_link" . $log; return html_page($ctx, 200, \$log); } $$blob = $enc_utf8->decode($$blob); my $nl = ($$blob =~ tr/\n/\n/); my $pad = length($nl); # using some of the same CSS class names and ids as cgit $log = "
$oid $type $size bytes $raw_link" . "
" . join('', map { sprintf("% ${pad}u\n", $_) } (1..$nl)) . ' | ' .
'
|