67 |
is => 'rw', |
is => 'rw', |
68 |
isa => 'Int', |
isa => 'Int', |
69 |
# required => 1, # FIXME we can't have required fields with defaults because Frey::Action isn't smart enough and asks for them |
# required => 1, # FIXME we can't have required fields with defaults because Frey::Action isn't smart enough and asks for them |
70 |
default => 120, |
default => 250, |
71 |
); |
); |
72 |
|
|
73 |
my %escape = ('<'=>'<', '>'=>'>', '&'=>'&', '"'=>'"'); |
my %escape = ('<'=>'<', '>'=>'>', '&'=>'&', '"'=>'"'); |
245 |
qq| |
qq| |
246 |
<span class="right"> |
<span class="right"> |
247 |
<a title="reload $url" href="/reload$url">reload</a> |
<a title="reload $url" href="/reload$url">reload</a> |
248 |
<a title="$description" href="/exit$url">$exit</a> |
<a title="$description" href="/exit$url" target="exit">$exit</a> |
249 |
</span> |
</span> |
250 |
|; |
|; |
251 |
|
|
252 |
my $svk = Frey::SVK->new; |
my $svk = Frey::SVK->new( request_url => '/' ); |
253 |
my $info = $svk->info; |
my $info = $svk->info; |
254 |
my $revision = $svk->info->{Revision} || ''; |
my $revision = $svk->info->{Revision} || ''; |
255 |
$revision = $1 if $info->{'Mirrored From'} =~ m{Rev\.\s+(\d+)}; |
$revision = $1 if $info->{'Mirrored From'} =~ m{Rev\.\s+(\d+)}; |
469 |
$Frey::Bootstrap::log_path || die "no log_path?"; |
$Frey::Bootstrap::log_path || die "no log_path?"; |
470 |
} |
} |
471 |
|
|
472 |
|
our $last_log_pos = 0; |
473 |
|
our $last_log_line = 0; |
474 |
|
|
475 |
|
our $pwd = `pwd`; |
476 |
|
chomp $pwd; |
477 |
|
|
478 |
sub warnings_html { |
sub warnings_html { |
479 |
my ($self,$level) = shift; |
my ($self,$level) = shift; |
480 |
$level ||= $self->debug, |
$level ||= $self->debug, |
483 |
my $max = 30; |
my $max = 30; |
484 |
my $pos = 0; |
my $pos = 0; |
485 |
my @warnings = ( '' x $max ); # XXX circualar buffer for 50 lines |
my @warnings = ( '' x $max ); # XXX circualar buffer for 50 lines |
486 |
my $line = 0; |
my $line = $last_log_line; |
487 |
my $multiline_end; |
my $multiline_end; |
488 |
|
|
489 |
# XXX do we really want to do this every time? |
# XXX do we really want to do this every time? |
497 |
} |
} |
498 |
$self->add_css( $css ); |
$self->add_css( $css ); |
499 |
|
|
500 |
open(my $log, '<', $path) || die "can't open $path: $!"; |
open(my $log, '<', $path) || die "can't open $path: $!"; |
501 |
|
seek($log, $last_log_pos, 0) || warn "can't seek: $!"; |
502 |
while(<$log>) { |
while(<$log>) { |
503 |
chomp; |
chomp; |
504 |
$line++; |
$line++; |
505 |
|
|
506 |
|
next if m{^\s+(Mojo|Class::MOP|Moose)::}; |
507 |
|
|
508 |
my $style = ''; |
my $style = ''; |
509 |
|
|
510 |
=for filter |
=for filter |
531 |
my $level = $1; |
my $level = $1; |
532 |
my $msg = $_; |
my $msg = $_; |
533 |
|
|
534 |
|
# Mojo seems to expand warn messages to full path which is annoying |
535 |
|
$msg =~ s{/[^/]+/\.\./}{/}gs; |
536 |
|
$msg =~ s{$pwd/*}{}gs; |
537 |
|
|
538 |
my $spacer = ' '; |
my $spacer = ' '; |
539 |
my $real_msg = expand( $msg ); |
my $real_msg = expand( $msg ); |
540 |
if ( length($real_msg) > $self->html_dump_width ) { |
if ( length($real_msg) > $self->html_dump_width ) { |
558 |
$warnings[ $pos++ % $max ] = $msg; |
$warnings[ $pos++ % $max ] = $msg; |
559 |
} |
} |
560 |
} |
} |
561 |
warn "log has $line lines tell position ",tell($log); |
$last_log_pos = tell($log); |
562 |
|
$last_log_line = $line; |
563 |
|
warn "log has $line lines tell position $last_log_pos"; |
564 |
close($log) || die "can't close $path: $!"; |
close($log) || die "can't close $path: $!"; |
565 |
|
|
566 |
my $size = -s $path; |
my $size = -s $path; |
575 |
# need to wrap editor link into span so we can have links in warnings |
# need to wrap editor link into span so we can have links in warnings |
576 |
qq|<span class="frey-popup"><a target="editor" href="/editor+$path+$line" title="$path \| $size -> $s bytes \| $line -> $pos lines \| level $level">warn</a><code>| |
qq|<span class="frey-popup"><a target="editor" href="/editor+$path+$line" title="$path \| $size -> $s bytes \| $line -> $pos lines \| level $level">warn</a><code>| |
577 |
. $self->editor_links( $warnings ) |
. $self->editor_links( $warnings ) |
578 |
. qq|</code></span></a>| |
. qq|</code></span>| |
579 |
; |
; |
580 |
} |
} |
581 |
|
|