diff options
Diffstat (limited to 'Master')
-rwxr-xr-x | Master/tlpkg/bin/tlpsrc2zip.pl | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/Master/tlpkg/bin/tlpsrc2zip.pl b/Master/tlpkg/bin/tlpsrc2zip.pl new file mode 100755 index 00000000000..c6c40b7d2ab --- /dev/null +++ b/Master/tlpkg/bin/tlpsrc2zip.pl @@ -0,0 +1,115 @@ +#!/usr/bin/env perl +# +# tlpsrc2zip.pl +# create a (or more) zip file(s) for all the tlpsrc arguments +# Copyright 2007 Norbert Preining +# +# This file is licensed under the GNU General Public Licence version 2 +# or any later version +# + +BEGIN { + $^W = 1; + ($mydir = $0) =~ s,/[^/]*$,,; + unshift (@INC, "$mydir/.."); +} + +use strict; + +use TeXLive::TLPSRC; +use TeXLive::TLPOBJ; +use TeXLive::TLTREE; +use Getopt::Long; +use Pod::Usage; +use File::Path; + + +my $opt_master = "/src/TeX/texlive-svn/Master"; +my $opt_outputdir = "./zip"; +our $opt_debug = 0; +my $man = 0; +my $help = 0; + +GetOptions("debug!", # debug mode + "master=s" => \$opt_master, # location of the tree + "outputdir=s" => \$opt_outputdir, + 'help|?' => \$help, man => \$man + ) or pod2usage(2); + +pod2usage(1) if $help; +pod2usage(-exitstatus => 0, -verbose => 2) if $man; + +if (! -d "$opt_master") { + die "Master $opt_master does not exists!"; +} + +if (! -d "$opt_outputdir") { + mkpath("$opt_outputdir") or die "Cannot mkdir $opt_outputdir!"; +} + +my $tltree = TeXLive::TLTREE->new( 'svnroot' => "$opt_master" ); +$tltree->init_from_svn; + +foreach my $f (@ARGV) { + my $tlsrc = new TeXLive::TLPSRC; + $tlsrc->from_file($f); + my $tlp = $tlsrc->make_tlpobj($tltree); + $tlp->make_zip($tltree,$opt_outputdir); +} + + +__END__ + +=head1 NAME + +tlpsrc2zip - Create (one or more) zip file(s) from tlpsrc files + +=head1 SYNOPSIS + +tlpsrc2zip [options] [tlpsrcfiles ...] + + Options: + -help brief help message + -man full documentation + -master=s set Master of TeX Live tree + -outputdir=s specify the directory where zip files are created + -debug get debug messages from TL* modules + +=head1 OPTIONS + +=over 8 + +=item B<-help> + +Print a brief help message and exits. + +=item B<-man> + +Prints the manual page and exits. + +=item B<-master> + +The location given by B<-master> must point to a valid svn repository +of TeX Live Master direcory. Defaults to /src/TeX/texlive-svn/Master + +=item B<-outputdir> + +Specifies the location where zip files are created. Defaults to ./zip + +=item B<-debug> + +Give debug messages from the TeX Live modules + +=back + +=head1 DESCRIPTION + +B<tlpsrc2zip> converts TeX Live Package Source files (tlpsrc) into zip +files containing all the files in the package. + +Note that a copy of the created TeX Live Package Object file (.tlpobj) +is always included in the zip file in .tlpobj/NAME.tlpobj. + +=cut + + |