X-Git-Url: https://git.proxmox.com/?p=pve-common.git;a=blobdiff_plain;f=data%2FPVE%2FTools.pm;h=b42a5bb5f603b4ff5b3d13a9503aabb9067f2a64;hp=b991ba5afef2a2592d6519fe05057f6d5fffbaf7;hb=804b104122b78b07f81fdc259db4dd5ab82f016a;hpb=63ed950ad4baf0faa53652eaa4d895fa41f91451 diff --git a/data/PVE/Tools.pm b/data/PVE/Tools.pm index b991ba5..b42a5bb 100644 --- a/data/PVE/Tools.pm +++ b/data/PVE/Tools.pm @@ -702,4 +702,41 @@ sub split_args { return $str ? [ Text::ParseWords::shellwords($str) ] : []; } +sub dump_logfile { + my ($filename, $start, $limit) = @_; + + my $lines = []; + my $count = 0; + + my $fh = IO::File->new($filename, "r"); + if (!$fh) { + $count++; + push @$lines, { n => $count, t => "unable to open file - $!"}; + return ($count, $lines); + } + + $start = 0 if !$start; + $limit = 50 if !$limit; + + my $line; + while (defined($line = <$fh>)) { + next if $count++ < $start; + next if $limit <= 0; + chomp $line; + push @$lines, { n => $count, t => $line}; + $limit--; + } + + close($fh); + + # HACK: ExtJS store.guaranteeRange() does not like empty array + # so we add a line + if (!$count) { + $count++; + push @$lines, { n => $count, t => "no content"}; + } + + return ($count, $lines); +} + 1;