diff options
Diffstat (limited to 'Master/tlpkg/bin/tlpsrc2tlpdb.pl')
-rwxr-xr-x | Master/tlpkg/bin/tlpsrc2tlpdb.pl | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/Master/tlpkg/bin/tlpsrc2tlpdb.pl b/Master/tlpkg/bin/tlpsrc2tlpdb.pl new file mode 100755 index 00000000000..8eadecb1828 --- /dev/null +++ b/Master/tlpkg/bin/tlpsrc2tlpdb.pl @@ -0,0 +1,109 @@ +#!/usr/bin/env perl +# tlsrc2tldb.pl +# convert a set of tlsrc files (given as arguments) into tldb +# +# Copyright 2007 Norbert Preining +# This file is licensed under the GNU General Public Licence version 2 +# or any later version + +BEGIN { + $^W = 1; + chomp ($mydir = `dirname $0`); + unshift (@INC, "$mydir/.."); +} + +use strict; + +use TeXLive::TLPSRC; +use TeXLive::TLPOBJ; +use TeXLive::TLPDB; +use TeXLive::TLTREE; +use Getopt::Long; +use Pod::Usage; +use File::Path; + + +chomp (my $opt_master = `cd $::mydir/../.. && pwd`); +our $opt_debug = 0; +my $man = 0; +my $help = 0; + +GetOptions("debug!", # debug mode + "master=s" => \$opt_master, # location of the tree + '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!"; +} + +my $tltree = TeXLive::TLTREE->new( 'svnroot' => "$opt_master" ); +$tltree->init_from_svn; + +my $tldb = TeXLive::TLPDB->new; + +foreach my $f (@ARGV) { + my $tlsrc = new TeXLive::TLPSRC; + $tlsrc->from_file($f); + my $tlp = $tlsrc->make_tlpobj($tltree); + $tldb->add_tlpobj($tlp); +} + +$tldb->writeout; + +__END__ + +=head1 NAME + +tlsrc2tldb - Converting tlsrc files into tldb file + +=head1 SYNOPSIS + +tlsrc2tldb [options] [tlsrcfiles ...] + + Options: + -help brief help message + -man full documentation + -master=s set Master of TeX Live tree + -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 ../.. of C<$0>. + +=item B<-debug> + +Give debug messages from the TeX Live modules + +=back + +=head1 DESCRIPTION + +B<tlsrc2tldb> converts TeX Live Source (tlsrc) files into TeX Live Database +(tldb). + +=head1 AUTHORS AND COPYRIGHT + +This script and its documentation was written by +Norbert Preining <F<preining@logic.at>> for the TeX Live distribution and both +are licensed under the GNU General Public License Version 2 or later. + +=cut + + |