diff options
author | Karl Berry <karl@freefriends.org> | 2006-05-30 17:48:45 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-05-30 17:48:45 +0000 |
commit | 60b30f94ad3de107dc47f344365cfbe5915b6044 (patch) | |
tree | 93db8b30cb0caeff3750a07f93af751e8194374d /Build/tools/tlpkginfo | |
parent | 2534976919d6181d8269b184da08b1ae425b9dd3 (diff) |
extract ctan-dir-finding to a common subprogram
git-svn-id: svn://tug.org/texlive/trunk@1621 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/tools/tlpkginfo')
-rwxr-xr-x | Build/tools/tlpkginfo | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/Build/tools/tlpkginfo b/Build/tools/tlpkginfo new file mode 100755 index 00000000000..0fde8a13af3 --- /dev/null +++ b/Build/tools/tlpkginfo @@ -0,0 +1,131 @@ +#!/usr/bin/env perl +# $Id$ +# Return information given a TL package name (i.e., a tpm file name). +# Currently just the ctan directory for package, but maybe we'll do more +# later. +# +exit (&main ()); + +sub main +{ + $CTAN = $ENV{"CTAN"} || "/home/ftp/tex-archive"; + if ($ARGV[0] eq "--ctan-dir") { + return &find_ctan_dir ($ARGV[1]); + } else { + die "$0: only know about --ctan-dir PKGNAME.\n"; + } +} + + +# +# The CTAN path to a package is sometimes stored in the TeX Catalogue, +# but old entries don't have it, etc. Still, we should use it if present.xx +# Return 0 for success if we find a path (and print it on stdout), else +# return 1. +# +sub find_ctan_dir +{ + my ($me) = @_; + return 1 unless $me; + + (my $menobin = $me) =~ s,^bin-,,; + (my $menodash = $me) =~ s,^.*-,,; + (my $menopowerdot = $me) =~ s,^powerdot-,,; + (my $menotype1 = $me) =~ s,-type1$,,; + + my $ctan_dir = ""; + + for my $dir ( + "macros/latex/contrib/$me", # most everything + "macros/latex/contrib/\L$me", # HA-prosper + "macros/latex/contrib/powerdot/contrib/$menopowerdot", # powerdot-doc-vn + "macros/latex/exptl/$me", # semioneside + "macros/latex/required/$me", # babel + "macros/plain/$me", # plnfss + "macros/xetex/latex/$me", # xetex + "macros/generic/$me", # abbr + "macros/generic/diagrams/$me", # circ + "macros/$me", # eplain + "support/$me", # thumbpdf + "support/$menobin", # bin-thumbpdf + "language/vietnamese/$me/unpacked", # vntex + "language/hebrew/$me", # cjhebrew + "language/greek/package-babel/$me", # ibycus-babel + "language/coptic/$me", # cbcoptic + "info/math/voss/$me", # mathmode + "info/lshort/$menodash", # lshort-english + "info/bibtex/$me", # tamethebeast + "info/symbols/$me", # comprehensive + "info/$me", # Type1fonts + "graphics/$me", # sparklines + "graphics/metapost/contrib/macros/$me", # mpattern + "graphics/pstricks/contrib/pedigree/$me", # pst-pdgr + "graphics/pstricks/contrib/$me", # pstricks-add + "fonts/$me", # MnSymbol + "fonts/gothic/$me", # blacklettert1 + "fonts/cyrillic/$me/texmf", # lh + "fonts/greek/$me", # lfb + "fonts/ps-type1/$me", # cm-super + "fonts/ps-type1/$menotype1", # esint-type1 + "fonts/utilities/$me", # accfonts + "biblio/bibtex/contrib/$me", # dk-bib + ) { + if (-d "$CTAN/$dir") { + $ctan_dir = $dir; + last; + } + } + + # names totally dissimilar + $ctan_dir = "fonts/fourier-GUT" if $me eq "fourier"; + $ctan_dir = "info/biblio" if $me eq "beebe"; + $ctan_dir = "info/italian/amsldoc" if $me eq "amsldoc-it"; + $ctan_dir = "info/italian/amsthdoc" if $me eq "amsthdoc-it"; + $ctan_dir = "info/tex-references" if $me eq "tex-refs"; + $ctan_dir = "language/basque" if $me eq "hyphen-basque"; + $ctan_dir = "language/devanagari/velthuis" if $me eq "devanagr"; + $ctan_dir = "language/hyphenation" if $me eq "hyphen-german"; + $ctan_dir = "language/hyphenation/elhyphen" if $me eq "hyphen-greek"; + $ctan_dir = "macros/latex/contrib/misc" if $me eq "ltxmisc"; + $ctan_dir = "macros/generic" if $me eq "genmisc"; + + # do last, for sake of subdirs above. + $ctan_dir = "language/hyphenation" + if $me =~ /^hyphen-/ && ! $ctan_dir; + + print "$CTAN/$ctan_dir\n" if $ctan_dir; + return $ctan_dir ? 0 : 1; +} + +# this was the inverse code from ctan2tl, saving for a while until i get +# a better grip. +## case "$pkg" in +## biblio) pkg=beebe;; +## fourier-GUT) pkg=fourier;; +## generic) pkg=genmisc;; # $ctan/macros/generic +## ha-prosper) pkg=HA-prosper;; +## misc) pkg=ltxmisc;; # until we do real misc package. +## tex-references) pkg=tex-refs;; +## velthuis) pkg=devanagr;; +## voss) pkg=voss-de;; +## esac +## +## # lshort is arranged by language. +## pkgdir=`dirname $ctan_dir1` +## up=`basename $pkgdir` +## test "$up" = lshort && pkg=lshort-$pkg +## +## # esint is split into two. +## test "$pkg" = esint && test "$up" = ps-type1 && pkg=esint-type1 +## +## # vntex, powerdot, lh aare in unpacked subdirs. +## test "$pkg" = unpacked && test "$up" = vntex && pkg=vntex +## test "$pkg" = distrib && test "$up" = powerdot && pkg=powerdot +## test "$pkg" = texmf && test "$up" = lh && pkg=lh +## +## # powerdot-doc-vn is a couple subdirs down. +## test "$pkg" = doc-vn && test "$up" = contrib && pkg=powerdot-doc-vn +## +## # amslatex/vietnamese. +## test "$pkg" = vietnamese && test "$up" = amslatex && pkg=amsldoc-vn + |