|
Packit Service |
392537 |
#!@PERL@ -w
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
use strict;
|
|
Packit Service |
392537 |
use warnings;
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
# create a TOC (Table Of Content) file for an amanda dump
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
# Author: Nicolas.Mayencourt@cui.unige.ch
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
# release 3.1.4
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
# HISTORY
|
|
Packit Service |
392537 |
# 1.0 19??-??-?? nicolas@cui.unige.ch
|
|
Packit Service |
392537 |
# don't remember :-)
|
|
Packit Service |
392537 |
# 2.0 1996-??-?? nicolas@cui.unige.ch
|
|
Packit Service |
392537 |
# amanda 2.2.6 support
|
|
Packit Service |
392537 |
# 3.0 1999-02-17 Nicolas.Mayencourt@cui.unige.ch
|
|
Packit Service |
392537 |
# major rewrite, incompatible with release 2.0, amanda 2.4 support
|
|
Packit Service |
392537 |
# 3.0.1 1999-02-17 oliva@dcc.unicamp.br
|
|
Packit Service |
392537 |
# minor fixes for multi-tape runs
|
|
Packit Service |
392537 |
# 3.0.2 1999-02-28 martineau@IRO.UMontreal.CA
|
|
Packit Service |
392537 |
# output the datestamp of each dump
|
|
Packit Service |
392537 |
# 3.0.3 1999-09-01 jrj@purdue.edu
|
|
Packit Service |
392537 |
# allow multiple -s entries
|
|
Packit Service |
392537 |
# 3.0.4 1999-09-15 jrj@purdue.edu
|
|
Packit Service |
392537 |
# handle an image failing on one tape...
|
|
Packit Service |
392537 |
# 3.1.0 1999-10-06 Nicolas.Mayencourt@cui.unige.ch
|
|
Packit Service |
392537 |
# add new options (-i -t)
|
|
Packit Service |
392537 |
# 3.1.1 1999-10-08 Nicolas.Mayencourt@cui.unige.ch
|
|
Packit Service |
392537 |
# print original size, instead of size-on-tape
|
|
Packit Service |
392537 |
# 3.1.2 1999-10-11 Nicolas.Mayencourt@cui.unige.ch
|
|
Packit Service |
392537 |
# really print original size, instead of size-on-tape
|
|
Packit Service |
392537 |
# 3.1.3 Nicolas.Mayencourt@cui.unige.ch
|
|
Packit Service |
392537 |
# correct a bug for total report
|
|
Packit Service |
392537 |
# 3.1.4 2000-01-14 dhw@whistle.com
|
|
Packit Service |
392537 |
# Add a flag (-w) for vertical whitespace
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
my %lines;
|
|
Packit Service |
392537 |
my %dates;
|
|
Packit Service |
392537 |
my %labels;
|
|
Packit Service |
392537 |
my $IF;
|
|
Packit Service |
392537 |
my $OF;
|
|
Packit Service |
392537 |
my $tabular;
|
|
Packit Service |
392537 |
my $fnbr;
|
|
Packit Service |
392537 |
my $hstprt;
|
|
Packit Service |
392537 |
my $dt;
|
|
Packit Service |
392537 |
my $lvl;
|
|
Packit Service |
392537 |
my $sz;
|
|
Packit Service |
392537 |
my $ch;
|
|
Packit Service |
392537 |
my $s;
|
|
Packit Service |
392537 |
my @subs;
|
|
Packit Service |
392537 |
my $dir;
|
|
Packit Service |
392537 |
my $i;
|
|
Packit Service |
392537 |
my $info;
|
|
Packit Service |
392537 |
my $tocfilename;
|
|
Packit Service |
392537 |
my $vwspace;
|
|
Packit Service |
392537 |
my $logfile;
|
|
Packit Service |
392537 |
my $filenumber;
|
|
Packit Service |
392537 |
my $tot_or_size;
|
|
Packit Service |
392537 |
my $line;
|
|
Packit Service |
392537 |
my $host;
|
|
Packit Service |
392537 |
my $disk;
|
|
Packit Service |
392537 |
my %osize;
|
|
Packit Service |
392537 |
my %fail;
|
|
Packit Service |
392537 |
my $flash_mode;
|
|
Packit Service |
392537 |
my $storage;
|
|
Packit Service |
392537 |
my $pool;
|
|
Packit Service |
392537 |
my $label;
|
|
Packit Service |
392537 |
my $filenum;
|
|
Packit Service |
392537 |
my $date;
|
|
Packit Service |
392537 |
my $chunk;
|
|
Packit Service |
392537 |
my $level;
|
|
Packit Service |
392537 |
my $mysize;
|
|
Packit Service |
392537 |
my $note;
|
|
Packit Service |
392537 |
my $size;
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
#--------------------------------------------------------
|
|
Packit Service |
392537 |
sub pr($$$$$$$) {
|
|
Packit Service |
392537 |
# you can update these proc if you want another formating
|
|
Packit Service |
392537 |
# format: filenumber host:part date level size
|
|
Packit Service |
392537 |
# If you use tabular option, modifie the format at the end of the code
|
|
Packit Service |
392537 |
if (defined($tabular)) {
|
|
Packit Service |
392537 |
$fnbr=$_[0];
|
|
Packit Service |
392537 |
$hstprt=$_[1] . ":" . $_[2];
|
|
Packit Service |
392537 |
$dt=$_[3];
|
|
Packit Service |
392537 |
$lvl=$_[4];
|
|
Packit Service |
392537 |
$sz=$_[5];
|
|
Packit Service |
392537 |
$ch=$_[6];
|
|
Packit Service |
392537 |
write($OF);
|
|
Packit Service |
392537 |
} else {
|
|
Packit Service |
392537 |
print $OF "$_[0] $_[1]:$_[2] $_[3] $_[4] $_[5] $_[6]\n";
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
#--------------------------------------------------------
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
#--------------------------------------------------------
|
|
Packit Service |
392537 |
sub tfn($) {
|
|
Packit Service |
392537 |
# calculate tocfilename
|
|
Packit Service |
392537 |
$_ = $_[0];
|
|
Packit Service |
392537 |
foreach $s (@subs) {
|
|
Packit Service |
392537 |
eval $s;
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
return $dir . $_ ;
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
#--------------------------------------------------------
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
#--------------------------------------------------------
|
|
Packit Service |
392537 |
sub usage($) {
|
|
Packit Service |
392537 |
print STDERR "@_\n\n";
|
|
Packit Service |
392537 |
print STDERR "usage: amtoc [-a] [-i] [-t] [-f file] [-s subs] [-w] [--] logfile\n";
|
|
Packit Service |
392537 |
print STDERR " -a : file output to `label`.toc\n";
|
|
Packit Service |
392537 |
print STDERR " -i : Start TOC with a small help message\n";
|
|
Packit Service |
392537 |
print STDERR " -t : tabular output\n";
|
|
Packit Service |
392537 |
print STDERR " -f file : output to file\n";
|
|
Packit Service |
392537 |
print STDERR " -s subs : output file name evaluated to `eval \$subs`\n";
|
|
Packit Service |
392537 |
print STDERR " -w : add vertical whitespace after each tape\n";
|
|
Packit Service |
392537 |
print STDERR " -- : last option\n";
|
|
Packit Service |
392537 |
print STDERR " logfile : input file ('-' for stdin)\n";
|
|
Packit Service |
392537 |
exit;
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
#--------------------------------------------------------
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
#--------------------------------------------------------
|
|
Packit Service |
392537 |
sub init() {
|
|
Packit Service |
392537 |
&usage("amtoc required at least 'logfile' parameter.") if ($#ARGV==-1) ;
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
@subs = ();
|
|
Packit Service |
392537 |
for ($i=0;$i<=$#ARGV;$i++) {
|
|
Packit Service |
392537 |
if ($ARGV[$i] eq '-a') {
|
|
Packit Service |
392537 |
push (@subs, "s/\$/.toc/");
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
elsif ($ARGV[$i] eq '-i') {
|
|
Packit Service |
392537 |
$info=1;
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
elsif ($ARGV[$i] eq '-t') {
|
|
Packit Service |
392537 |
$tabular=1;
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
elsif ($ARGV[$i] eq '-f') {
|
|
Packit Service |
392537 |
$i++;
|
|
Packit Service |
392537 |
&usage("'-f' option require 'file' parameter.") if ($i > $#ARGV);
|
|
Packit Service |
392537 |
$tocfilename=$ARGV[$i];
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
elsif ($ARGV[$i] eq '-s') {
|
|
Packit Service |
392537 |
$i++;
|
|
Packit Service |
392537 |
&usage("'-s' option require 'subs' parameter.") if ($i > $#ARGV);
|
|
Packit Service |
392537 |
push (@subs, $ARGV[$i]);
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
elsif ($ARGV[$i] eq '-w') {
|
|
Packit Service |
392537 |
$vwspace=1;
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
elsif ($ARGV[$i] eq '--') {
|
|
Packit Service |
392537 |
# no more options: next arg == logfile
|
|
Packit Service |
392537 |
$i++;
|
|
Packit Service |
392537 |
&usage("amtoc required at least 'logfile' parameter.") if ($i > $#ARGV);
|
|
Packit Service |
392537 |
$logfile=$ARGV[$i];
|
|
Packit Service |
392537 |
&usage("too many parameters.") unless ($i == $#ARGV);
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
else {
|
|
Packit Service |
392537 |
$logfile=$ARGV[$i];
|
|
Packit Service |
392537 |
&usage("too many parameters.") unless ($i == $#ARGV);
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
&usage("amtoc required at least 'logfile' parameter.") unless ($logfile);
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
#--------------------------------------------------------
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
&ini;;
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
delete @ENV{'IFS', 'CDPATH', 'ENV', 'BASH_ENV', 'PATH'};
|
|
Packit Service |
392537 |
$ENV{'PATH'} = "/usr/bin:/usr/sbin:/sbin:/bin";
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
$dir=$logfile;
|
|
Packit Service |
392537 |
$dir =~ s/[^\/]*$//;
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
if ($logfile eq '-') {$IF=*STDIN} else
|
|
Packit Service |
392537 |
{die ("Cannot open logfile $logfile") unless open ($IF,"$logfile");}
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
$filenumber=0;
|
|
Packit Service |
392537 |
$tot_or_size=0;
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
while ( <$IF> ) {
|
|
Packit Service |
392537 |
$line = $_;
|
|
Packit Service |
392537 |
if ( /^FAIL dumper (\S+) (\S+)/ ) {
|
|
Packit Service |
392537 |
next;
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
if ( /^SUCCESS dumper (\S+) (\S+)/ ) {
|
|
Packit Service |
392537 |
$host = $1;
|
|
Packit Service |
392537 |
$disk = $2;
|
|
Packit Service |
392537 |
$line =~ /orig-kb (\d+)/;
|
|
Packit Service |
392537 |
$osize{$host}{$disk} = $1;
|
|
Packit Service |
392537 |
$tot_or_size += $osize{$host}{$disk};
|
|
Packit Service |
392537 |
$fail{$host}{$disk} = 0;
|
|
Packit Service |
392537 |
next;
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
if ( /^START amflush/ ) {
|
|
Packit Service |
392537 |
$flash_mode = 1;
|
|
Packit Service |
392537 |
next;
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
if ( ! /^([A-Z]+) taper \S+ \S+ (\S+) (\S+) (\S+) (\S+) (\S+)/) { next;}
|
|
Packit Service |
392537 |
# $_ = $1;
|
|
Packit Service |
392537 |
if (/PART taper/) {
|
|
Packit Service |
392537 |
if (/^([A-Z]+) taper ("ST:\S+") ("POOL:\S+") (\S+) (\S+) (\S+) (\S+) (\S+) (\S+) (\S+)/) {
|
|
Packit Service |
392537 |
$storage = $2;
|
|
Packit Service |
392537 |
$pool = $3;
|
|
Packit Service |
392537 |
$label = $4;
|
|
Packit Service |
392537 |
$filenum = $5;
|
|
Packit Service |
392537 |
$host = $6;
|
|
Packit Service |
392537 |
$disk = $7;
|
|
Packit Service |
392537 |
$date = $8;
|
|
Packit Service |
392537 |
$chunk = $9;
|
|
Packit Service |
392537 |
$level = $10;
|
|
Packit Service |
392537 |
$labels{$storage}{$pool}{$host}{$disk}{$date} = $label;
|
|
Packit Service |
392537 |
} else {
|
|
Packit Service |
392537 |
/^([A-Z]+) taper (\S+) (\S+) (\S+) (\S+) (\S+) (\S+) (\S+)/;
|
|
Packit Service |
392537 |
$label = $2;
|
|
Packit Service |
392537 |
$filenum = $3;
|
|
Packit Service |
392537 |
$host = $4;
|
|
Packit Service |
392537 |
$disk = $5;
|
|
Packit Service |
392537 |
$date = $6;
|
|
Packit Service |
392537 |
$chunk = $7;
|
|
Packit Service |
392537 |
$level = $8;
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
if ($filenum != $filenumber) {
|
|
Packit Service |
392537 |
# This should not be possible */
|
|
Packit Service |
392537 |
$filenumber = $filenum;
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
} elsif (/START taper/) {
|
|
Packit Service |
392537 |
if (/^([A-Z]+) taper (\S+) (\S+) ("ST:\S+") ("POOL:\S+") (\S+) (\S+) (\S+)/) {
|
|
Packit Service |
392537 |
$date = $3;
|
|
Packit Service |
392537 |
$storage = $4;
|
|
Packit Service |
392537 |
$pool = $5;
|
|
Packit Service |
392537 |
$label = $7;
|
|
Packit Service |
392537 |
$level = $7;
|
|
Packit Service |
392537 |
} else {
|
|
Packit Service |
392537 |
/^([A-Z]+) taper (\S+) (\S+) (\S+) (\S+) (\S+)/;
|
|
Packit Service |
392537 |
$date = $3;
|
|
Packit Service |
392537 |
$label = $4;
|
|
Packit Service |
392537 |
$level = $5;
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
} else {
|
|
Packit Service |
392537 |
if (/^([A-Z]+) taper ("ST:\S+") ("POOL:\S+") (\S+) (\S+) (\S+) (\S+) (\S+)/) {
|
|
Packit Service |
392537 |
$storage = $2;
|
|
Packit Service |
392537 |
$pool = $3;
|
|
Packit Service |
392537 |
$host = $4;
|
|
Packit Service |
392537 |
$disk = $5;
|
|
Packit Service |
392537 |
$date = $6;
|
|
Packit Service |
392537 |
$chunk = $7;
|
|
Packit Service |
392537 |
$level = $8;
|
|
Packit Service |
392537 |
$label = $labels{$storage}{$pool}{$host}{$disk}{$date};
|
|
Packit Service |
392537 |
} else {
|
|
Packit Service |
392537 |
/^([A-Z]+) taper (\S+) (\S+) (\S+) (\S+) (\S+)/;
|
|
Packit Service |
392537 |
$host = $2;
|
|
Packit Service |
392537 |
$disk = $3;
|
|
Packit Service |
392537 |
$date = $4;
|
|
Packit Service |
392537 |
$chunk = $5;
|
|
Packit Service |
392537 |
$level = $6;
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
switch: {
|
|
Packit Service |
392537 |
/START taper/ && do {
|
|
Packit Service |
392537 |
$tocfilename=&tfn($label) if ($#subs >= 0);
|
|
Packit Service |
392537 |
if (!$tocfilename || ($tocfilename eq '-')) {$OF=*STDOUT;}
|
|
Packit Service |
392537 |
else {
|
|
Packit Service |
392537 |
die ("Cannot open tocfile $tocfilename") unless open($OF,">$tocfilename");
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
print $OF "\f" if ($vwspace && $filenumber);
|
|
Packit Service |
392537 |
if (defined($info)) {
|
|
Packit Service |
392537 |
print $OF "AMANDA: To restore:\n";
|
|
Packit Service |
392537 |
print $OF " position tape at start of file and run:\n";
|
|
Packit Service |
392537 |
print $OF " dd if=<tape> bs=32k skip=1 [ | zcat ] | restore -...f\n";
|
|
Packit Service |
392537 |
print $OF " or run: amrestore -p <tape> [host [partition]] | restore -...f\n";
|
|
Packit Service |
392537 |
print $OF "\n";
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
$filenumber=0;
|
|
Packit Service |
392537 |
# &pr("#","Server","/partition","date", "level","size[Kb]","part");
|
|
Packit Service |
392537 |
# &pr("$filenumber","$label","","$date","-","-","-");
|
|
Packit Service |
392537 |
$dates{$label} = $date;
|
|
Packit Service |
392537 |
last switch; };
|
|
Packit Service |
392537 |
/^(?:SUCCESS|CHUNK|PART|DONE) taper/ && do {
|
|
Packit Service |
392537 |
if(/SUCCESS/){
|
|
Packit Service |
392537 |
$level = $chunk;
|
|
Packit Service |
392537 |
$chunk = "-";
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
$filenum = $filenumber;
|
|
Packit Service |
392537 |
if (/DONE/) {
|
|
Packit Service |
392537 |
$chunk = "-";
|
|
Packit Service |
392537 |
$filenumber--;
|
|
Packit Service |
392537 |
$filenum = " ";
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
my $mysize = 0;
|
|
Packit Service |
392537 |
if(/ kb (\d+) /){
|
|
Packit Service |
392537 |
$mysize = $1;
|
|
Packit Service |
392537 |
} elsif(/ bytes (\d+) /){
|
|
Packit Service |
392537 |
$mysize = int($1/1024);
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
if ( $fail{$host}{$disk} ) {
|
|
Packit Service |
392537 |
my @line = ($filenum, $host, $disk, $date, $level, "FAIL", $chunk);
|
|
Packit Service |
392537 |
push @{$lines{$label}}, \@line;
|
|
Packit Service |
392537 |
} else {
|
|
Packit Service |
392537 |
if (defined($flash_mode)) {
|
|
Packit Service |
392537 |
my @line = ($filenum, $host, $disk, $date, $level, "$mysize", $chunk);
|
|
Packit Service |
392537 |
push @{$lines{$label}}, \@line;
|
|
Packit Service |
392537 |
} else {
|
|
Packit Service |
392537 |
if (defined($osize{$host}{$disk}) && !/^CHUNK/ && !/^PART/) {
|
|
Packit Service |
392537 |
my @line = ($filenum, $host, $disk, $date, $level, "$osize{$host}{$disk}", $chunk);
|
|
Packit Service |
392537 |
push @{$lines{$label}}, \@line;
|
|
Packit Service |
392537 |
} else {
|
|
Packit Service |
392537 |
$note = "";
|
|
Packit Service |
392537 |
if(!/^CHUNK/ && !/^PART/){
|
|
Packit Service |
392537 |
# this case should never happend:
|
|
Packit Service |
392537 |
} else {
|
|
Packit Service |
392537 |
$note = "*";
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
my @line = ($filenum, $host, $disk, $date, $level, "$note$mysize", $chunk);
|
|
Packit Service |
392537 |
push @{$lines{$label}}, \@line;
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
last switch;};
|
|
Packit Service |
392537 |
/INFO taper retrying/ && do {
|
|
Packit Service |
392537 |
--$filenumber;
|
|
Packit Service |
392537 |
last switch; };
|
|
Packit Service |
392537 |
/INFO taper tape (\S+) .* \[OK\]/ && do {
|
|
Packit Service |
392537 |
$label = $1;
|
|
Packit Service |
392537 |
$line =~ / kb (\d+) /;
|
|
Packit Service |
392537 |
$size = $1;
|
|
Packit Service |
392537 |
$line =~ / fm (\d+) /;
|
|
Packit Service |
392537 |
my @line = ($1, "total", "on_tape", "-", "-", "$size", "-");
|
|
Packit Service |
392537 |
push @{$lines{$label}}, \@line;
|
|
Packit Service |
392537 |
last switch; };
|
|
Packit Service |
392537 |
/FAIL taper/ && do { next; };
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
$filenumber += 1;
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
close $IF;
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
foreach my $label (sort keys %lines) {
|
|
Packit Service |
392537 |
$tocfilename=&tfn($label) if ($#subs >= 0);
|
|
Packit Service |
392537 |
if (!$tocfilename || ($tocfilename eq '-')) {$OF=*STDOUT;}
|
|
Packit Service |
392537 |
else {
|
|
Packit Service |
392537 |
die ("Cannot open tocfile $tocfilename") unless open($OF,">$tocfilename");
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
my $ofh = select($OF);
|
|
Packit Service |
392537 |
$~ = "OF";
|
|
Packit Service |
392537 |
select($ofh);
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
print $OF "\f" if $vwspace;
|
|
Packit Service |
392537 |
pr("#","Server","/partition","date", "level","size[Kb]","part");
|
|
Packit Service |
392537 |
pr("0","$label","","$dates{$label}","-","-","-");
|
|
Packit Service |
392537 |
foreach my $line (@{$lines{$label}}) {
|
|
Packit Service |
392537 |
&pr(@{$line});
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
print "\n\n" if ($vwspace);
|
|
Packit Service |
392537 |
if ($tocfilename && $tocfilename ne '-') {
|
|
Packit Service |
392537 |
close $OF;
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
}
|
|
Packit Service |
392537 |
#if (defined($flash_mode)) {
|
|
Packit Service |
392537 |
# pr("-","total","origin","-","not","available","-");
|
|
Packit Service |
392537 |
#} else {
|
|
Packit Service |
392537 |
# pr("-","total","origin","-","-","$tot_or_size","-");
|
|
Packit Service |
392537 |
#}
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
format OF =
|
|
Packit Service |
392537 |
@>> @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<< @>> @>>>>>>>>
|
|
Packit Service |
392537 |
$fnbr,$hstprt,$dt,$lvl,$sz
|
|
Packit Service |
392537 |
.
|
|
Packit Service |
392537 |
|
|
Packit Service |
392537 |
format STDOUT =
|
|
Packit Service |
392537 |
@>> @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<< @>> @>>>>>>>> @>>>
|
|
Packit Service |
392537 |
$fnbr,$hstprt,$dt,$lvl,$sz,$ch
|
|
Packit Service |
392537 |
.
|
|
Packit Service |
392537 |
|