summaryrefslogtreecommitdiff
path: root/Build/tools/tlpkginfo
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-05-30 17:48:45 +0000
committerKarl Berry <karl@freefriends.org>2006-05-30 17:48:45 +0000
commit60b30f94ad3de107dc47f344365cfbe5915b6044 (patch)
tree93db8b30cb0caeff3750a07f93af751e8194374d /Build/tools/tlpkginfo
parent2534976919d6181d8269b184da08b1ae425b9dd3 (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-xBuild/tools/tlpkginfo131
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
+