summaryrefslogtreecommitdiff
path: root/Master/tlpkg/TeXLive/TLPOBJ.pm
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2008-06-28 23:05:44 +0000
committerNorbert Preining <preining@logic.at>2008-06-28 23:05:44 +0000
commit916b4893ed39a39d316a32c96e5c6110b8e84e41 (patch)
treec2e94740939774092347db0b52aeb32471276757 /Master/tlpkg/TeXLive/TLPOBJ.pm
parent7555dd14aa0972fe77a9613d8f9dbd8f552dd5fd (diff)
restart feature of installer
git-svn-id: svn://tug.org/texlive/trunk@9078 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/TeXLive/TLPOBJ.pm')
-rw-r--r--Master/tlpkg/TeXLive/TLPOBJ.pm50
1 files changed, 50 insertions, 0 deletions
diff --git a/Master/tlpkg/TeXLive/TLPOBJ.pm b/Master/tlpkg/TeXLive/TLPOBJ.pm
index 1395279ca66..f911f2a6cff 100644
--- a/Master/tlpkg/TeXLive/TLPOBJ.pm
+++ b/Master/tlpkg/TeXLive/TLPOBJ.pm
@@ -167,6 +167,18 @@ sub from_fh {
$self->{'revision'} = "$1";
$lastcmd = "revision";
next;
+ } elsif ($line =~ /^containersize\s+([0-9]+)\s*/o) {
+ $self->containersize("$1");
+ $lastcmd = "containersize";
+ next;
+ } elsif ($line =~ /^srccontainersize\s+([0-9]+)\s*/o) {
+ $self->srccontainersize("$1");
+ $lastcmd = "srccontainersize";
+ next;
+ } elsif ($line =~ /^doccontainersize\s+([0-9]+)\s*/o) {
+ $self->doccontainersize("$1");
+ $lastcmd = "doccontainersize";
+ next;
} elsif ($line =~ /^catalogue\s+(.*)\s*/o) {
$self->catalogue("$1");
$lastcmd = "catalogue";
@@ -290,6 +302,12 @@ sub writeout {
print $fd "execute $_\n";
}
}
+ if (defined($self->{'containersize'})) {
+ print $fd "containersize $self->{'containersize'}\n";
+ }
+ if (defined($self->{'doccontainersize'})) {
+ print $fd "doccontainersize $self->{'doccontainersize'}\n";
+ }
if (defined($self->{'docfiles'}) && (@{$self->{'docfiles'}})) {
print $fd "docfiles size=$self->{'docsize'}\n";
foreach my $f (sort @{$self->{'docfiles'}}) {
@@ -303,6 +321,9 @@ sub writeout {
print $fd "\n";
}
}
+ if (defined($self->{'srccontainersize'})) {
+ print $fd "srccontainersize $self->{'srccontainersize'}\n";
+ }
if (defined($self->{'srcfiles'}) && (@{$self->{'srcfiles'}})) {
print $fd "srcfiles size=$self->{'srcsize'}\n";
foreach (sort @{$self->{'srcfiles'}}) {
@@ -564,11 +585,14 @@ sub make_container {
} else {
tlwarn("Couldn't find $destdir/$tarname");
}
+ # compute the size
+ my $size = (stat "$destdir/$tarname.lzma") [7];
# cleaning up
unlink("$tlpobjdir/$self->{'name'}.tlpobj");
rmdir("$tlpobjdir") if $removetlpobjdir;
chdir($cwd);
ddebug("Done $containername\n");
+ return($size);
}
@@ -868,6 +892,21 @@ sub srcfiles {
if (@_) { $self->{'srcfiles'} = [ @_ ] }
return @{ $self->{'srcfiles'} };
}
+sub containersize {
+ my $self = shift;
+ if (@_) { $self->{'containersize'} = shift }
+ return ( defined($self->{'containersize'}) ? $self->{'containersize'} : -1 );
+}
+sub srccontainersize {
+ my $self = shift;
+ if (@_) { $self->{'srccontainersize'} = shift }
+ return ( defined($self->{'srccontainersize'}) ? $self->{'srccontainersize'} : -1 );
+}
+sub doccontainersize {
+ my $self = shift;
+ if (@_) { $self->{'doccontainersize'} = shift }
+ return ( defined($self->{'doccontainersize'}) ? $self->{'doccontainersize'} : -1 );
+}
sub srcsize {
my $self = shift;
if (@_) { $self->{'srcsize'} = shift }
@@ -1124,6 +1163,17 @@ which set or get the current value of the respective sizes. Note that also
the C<binsize> function returns (and takes as argument) a hash with the
architectures as keys, similar to the C<runfiles> functions (see above).
+Futhermore, if the tlpobj is contained ina tlpdb which describes a media
+where the files are distributed in packed format (usually as .tar.lzma),
+there are 3 more possible keys:
+
+ $tlpobj->containersize
+ $tlpobj->doccontainersize
+ $tlpobj->srccontainersize
+
+describing the respective sizes in bytes. The latter two are only present
+if src/doc file container splitting is activated for that install medium.
+
=head1 OTHER FUNCTIONS
The following functions can be called for an C<TLPOBJ> object: