#!/usr/bin/env perl # $Id$ # tlpsrc2zip - create zip file(s) for all tlpsrc arguments # Copyright 2007 Norbert Preining # # This file is licensed under the GNU General Public License 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 zip file(s) from tlpsrc files =head1 SYNOPSIS tlpsrc2zip [options] [tlpsrcfiles ...] =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 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. =head1 AUTHORS AND COPYRIGHT This script and its documentation were written for the TeX Live distribution (L) 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: #