From 395b98a9ece78fb75fe68b8182a4992f83cabef4 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Tue, 28 Oct 2008 23:50:25 +0000 Subject: move some scripts to tlpkg/archive git-svn-id: svn://tug.org/texlive/trunk@11096 c570f23f-e606-0410-a88d-b1316a301751 --- Master/tlpkg/archive/tlpsrc2tlpobj | 128 +++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100755 Master/tlpkg/archive/tlpsrc2tlpobj (limited to 'Master/tlpkg/archive/tlpsrc2tlpobj') diff --git a/Master/tlpkg/archive/tlpsrc2tlpobj b/Master/tlpkg/archive/tlpsrc2tlpobj new file mode 100755 index 00000000000..3135dafd243 --- /dev/null +++ b/Master/tlpkg/archive/tlpsrc2tlpobj @@ -0,0 +1,128 @@ +#!/usr/bin/env perl +# $Id$ +# tlpsrc2tlpobj - convert tlpsrc files (given as arguments) to tlpobj +# +# Copyright 2007, 2008 Norbert Preining +# This file is licensed under the GNU General Public License 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::TLTREE; +use TeXLive::TLUtils; +use Getopt::Long; +use Pod::Usage; +use File::Path; + +my $opt_catalogue = ""; +chomp (my $opt_master = `cd $::mydir/../.. && pwd`); +my $opt_outputdir = "./tlpobj"; +my $opt_help = 0; + +TeXLive::TLUtils::process_logging_options(); +GetOptions( + "catalogue=s" => \$opt_catalogue, # location of the TeX Catalogue + "master=s" => \$opt_master, # location of the tree + "outputdir=s" => \$opt_outputdir, + "help|?" => \$opt_help) or pod2usage(1); +pod2usage ('-exitstatus' => 0, '-verbose' => 2) if $opt_help; + +die "Master $opt_master not a directory" if ! -d $opt_master; +if (! -d $opt_outputdir) { + mkpath ($opt_outputdir); + die "mkdir($opt_outputdir) failed: $!" if ! -d $opt_outputdir; +} + +my $tlc = undef; +if (! -d "$opt_catalogue") { + info ("$0: -d /Cat/a/logue not given, continuing without it.\n"); +} else { + require TeXLive::TeXCatalogue; # not at compile time, for now anyway. + $tlc = TeXLive::TeXCatalogue->new ('location' => $opt_catalogue); +} + +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); + if ($tlc) { + $tlp->update_from_catalogue ($tlc); + } + + my $name = $tlp->name; + + my $OUT; + $OUT = ">$opt_outputdir/$name.tlpobj"; + open (OUT, $OUT) || die "create($OUT) failed: $!"; + $tlp->writeout (\*OUT); + close (OUT) || warn "close($OUT) failed: $!"; +} + +__END__ + +=head1 NAME + +tlpsrc2tlpobj - convert tlpsrc files into tlpobj files + +=head1 SYNOPSIS + +tlpsrc2tlpobj [OPTION]... [TLPSRC]... + +=head1 OPTIONS + +=over 4 + +=item B<-catalogue> I + +The location given by B<-catalogue> must point to a valid TeX Catalogue. +No default value. If given, the generated tlpobj files will contain +information gathered from the TeX Catalogue. + +=item B<-master> I + +The location given by B<-master> must point to a valid svn repository +of TeX Live's Master direcory. Defaults to C<../..> of C<$0>. + +=item B<-outputdir> I + +Specifies the location where tlpobj files are created; default C<./tlpobj>. + +=back + +The standard options B<-q>, B<-v>, and B<-logfile>=I are also +accepted; see the C function in +L for details. + +=head1 DESCRIPTION + +B converts TeX Live Package Source files (tlpsrc) into +TeX Live Package Object files (tlpobj). The process and the file +formats are described elsewhere. See L and +L. + +=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: # -- cgit v1.2.3