summaryrefslogtreecommitdiff
path: root/Master/tlpkg/bin/tlpdb2container
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2007-11-12 15:17:48 +0000
committerNorbert Preining <preining@logic.at>2007-11-12 15:17:48 +0000
commit898e6800b1731128534e7ee8e1b54e836d425b62 (patch)
tree6fd6f30692a8cae1fec2a92c8f1ea1c61f61151d /Master/tlpkg/bin/tlpdb2container
parentc9f9a5d52d853d226984e92cdc88ebf4773935bb (diff)
call it make_container, not make_zip
git-svn-id: svn://tug.org/texlive/trunk@5411 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/tlpkg/bin/tlpdb2container')
-rwxr-xr-xMaster/tlpkg/bin/tlpdb2container116
1 files changed, 116 insertions, 0 deletions
diff --git a/Master/tlpkg/bin/tlpdb2container b/Master/tlpkg/bin/tlpdb2container
new file mode 100755
index 00000000000..6467ec84e2d
--- /dev/null
+++ b/Master/tlpkg/bin/tlpdb2container
@@ -0,0 +1,116 @@
+#!/usr/bin/env perl
+# $Id: tlpdb2container 5188 2007-10-14 20:32:44Z karl $
+# Copyright 2007 Norbert Preining
+# This file is licensed under the GNU General Public License version 2
+# or any later version.
+#
+# Generate a zip file for the packages specified on the cmdline, or
+# for -all
+
+BEGIN {
+ $^W = 1;
+ ($mydir = $0) =~ s,/[^/]*$,,;
+ unshift (@INC, "$mydir/..");
+}
+
+use strict;
+
+use TeXLive::TLPOBJ;
+use TeXLive::TLPDB;
+use Getopt::Long;
+use Pod::Usage;
+use File::Path;
+
+my $opt_all = 0;
+our $mydir;
+our $opt_debug = 0;
+my $opt_type = "zip";
+my $opt_outputdir = "./zip";
+my $help = 0;
+
+GetOptions("outputdir=s" => \$opt_outputdir,
+ "all!" => \$opt_all,
+ "debug!" => \$opt_debug,
+ "type=s" => \$opt_type,
+ "help|?" => \$help) or pod2usage(1);
+
+pod2usage(-exitstatus => 0, -verbose => 2) if $help;
+
+exit (&main ());
+
+sub main
+{
+ # get the db.
+ chomp (my $Master = `cd $mydir/../.. && pwd`); # xx TLPDB should default
+ my $tlpdb_path = "$Master/texlive.tlpdb";
+ my $tlpdb = TeXLive::TLPDB->new ("location" => $tlpdb_path);
+ die("Cannot load tlpdb at $tlpdb_path!\n") unless defined($tlpdb);
+ my @packs;
+ if ($opt_all) {
+ @packs = $tlpdb->list_packages;
+ } else {
+ @packs = @ARGV;
+ }
+ # get list of packages.
+ for my $pkg (@packs) {
+ my $obj = $tlpdb->get_package ($pkg);
+ die "$0: no TeX Live package named $pkg in $tlpdb_path.\n" if ! $obj;
+ $obj->make_container($opt_type,$Master,$opt_outputdir);
+ }
+}
+
+
+
+__END__
+
+=head1 NAME
+
+tlpdb2container - generate container files (zip,tar.lzma) of a package
+
+=head1 SYNOPSIS
+
+tlpdb2container [OPTION]...
+
+=head1 OPTIONS
+
+=over 8
+
+=item B<-all>
+build container file for all packages present in the tlpdb.
+
+=item B<-outputdir> I<outputdir>
+The location where created container files are placed, defaults to ./zip.
+
+=item B<-type> I<zip|lzma>
+Specifies the type of container to be used. C<zip> generates zip files,
+while C<lzma> generates .tar.lzma files.
+
+=back
+
+The standard options C<-help> and C<-debug> are also accepted.
+See the tlpfiles documentation for details.
+
+
+=head1 DESCRIPTION
+
+To distribute packages over the network and on installation media the
+packages are wrapped into container files. These container are either
+simple zip files or tar.lzma file containing all the files of the package.
+
+B<tlpdb2container> generates container files from a TeX Live Database and the
+respective installation.
+
+=head1 AUTHORS AND COPYRIGHT
+
+This script and its documentation were written for the TeX Live
+distribution (L<http://tug.org/texlive>) and both are licensed under the
+GNU General Public License Version 2 or later.
+
+=cut
+
+### Local Variables:
+### perl-indent-level: 2
+### tab-width: 2
+### indent-tabs-mode: nil
+### End:
+# vim:set tabstop=2: #