#!/usr/bin/env perl -w # # tlsrc2tlp.pl # convert a set of tlsrc files (given as arguments) into tlp # Copyright 2007 Norbert Preining # # This file is licensed under the GNU General Public Licence version 2 # or any later version # BEGIN { ($mydir = $0) =~ s,/[^/]*$,,; unshift (@INC, $mydir); } use strict; use TLSRC; use TLP; use TLTREE; use Getopt::Long; use Pod::Usage; use File::Path; my $opt_master = "/src/TeX/texlive-svn/Master"; my $opt_outputdir = "./tlp"; 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 = TLTREE->new( 'svnroot' => "$opt_master" ); $tltree->init_from_svn; foreach my $f (@ARGV) { my $tlsrc = new TLSRC; $tlsrc->from_file($f); my $tlp = $tlsrc->make_tlp($tltree); my $name = $tlp->name; open(FOO,">$opt_outputdir/$name.tlp") or die "Cannot create $opt_outputdir/$name.tlp!"; $tlp->writeout(\*FOO); close(FOO); } __END__ =head1 NAME tlsrc2tlp - Converting tlsrc files into tlp files =head1 SYNOPSIS tlsrc2tlp [options] [tlsrcfiles ...] Options: -help brief help message -man full documentation -master=s set Master of TeX Live tree -outputdir=s specify the directory where tlp 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 tlp files are created. Defaults to ./tlp =item B<-debug> Give debug messages from the TeX Live modules =back =head1 DESCRIPTION B converts TeX Live Source (tlsrc) files into TeX Live Package files (tlp). =cut