summaryrefslogtreecommitdiff
path: root/Build/tools/etc/ctan2tl.new
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2006-11-09 13:18:02 +0000
committerNorbert Preining <preining@logic.at>2006-11-09 13:18:02 +0000
commit3696c8f2a98b5e48514a3608e0156c676b63470a (patch)
tree99006293861d5004c6de0938b605f6ef0e4b554a /Build/tools/etc/ctan2tl.new
parentaa10b19a7c6ffac34c3b21c9ac9afb7dc827cec4 (diff)
The Krakow-Vienna train ride update
package updates: ccaption cdpbundl chem-journal clefval coordsys dingbat dramatist egplot filecontents lcd maybemath metaobj metaplot mwcls pdfscreen pst-bar rsc dpfloat footbib jurabib added to ctan-tpm-check (and re-indented the long list) no changes between CTAN and depot, only added to the WorkingTPM list acmtrans bibunits bitfield blindtext bophook cherokee citeref cmdtrack colorinfo compactbib courier-scaled courseoutline coursepaper crop custom-bib cvsty dancers dashbox dcpic decimal digiconfigs dinat directory eCards eemeir ellipsis engrec envbig epiolmec epsf eqparbox eskd ethiop-t1 euro eurosans exam examplep expressg extarrows extsizes fp fribrief functan gatech-thesis ginpenc greenpoint hands hitec hvfloat hyperxmp inlinebib invoice isorot isotope jpsj kalender kerkis keystroke labels layouts lcg leaflet leawood lgreek limap lipsum listliketab logpap ltablex ltxindex mailing makebox makecirc makeglos maple mceinleger menu metatex mftinc mhs multicap mwrite nath nature ntgclass numline ofs ogham oldstyle papercdcase paresse parrun permute phaistos pittetd plates preprint prettyref program pseudocode pspicture pst-fr3d pst-math qcm rccol rcsinfo resume robustindex sae sauerj updates with changed files, but no added/removed files: ccaption cdpbundl chem-journal clefval coordsys dingbat dramatist egplot filecontents lcd maybemath metaobj metaplot mwcls pdfscreen pst-bar rsc updates with changes and added/removed files: dpfloat footbib jurabib git-svn-id: svn://tug.org/texlive/trunk@2411 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/tools/etc/ctan2tl.new')
-rwxr-xr-xBuild/tools/etc/ctan2tl.new168
1 files changed, 168 insertions, 0 deletions
diff --git a/Build/tools/etc/ctan2tl.new b/Build/tools/etc/ctan2tl.new
new file mode 100755
index 00000000000..1a486865b34
--- /dev/null
+++ b/Build/tools/etc/ctan2tl.new
@@ -0,0 +1,168 @@
+#!/bin/sh
+# $Id: ctan2tl 2084 2006-09-05 22:03:38Z karl $
+# Public domain. Originally written 2005, Karl Berry.
+#
+# Initial attempt at pushing a ctan directory into TL.
+# See ./README for a bit more info.
+#
+# Basic usage: ctan2tl TLPKGNAME
+# --place to include final `place' invocation (repository adds/removes).
+# --no-ctan if already have files in ../cdbuild/raw/PKG.
+# Unlikely to work without GNU utilities.
+#
+# This does not actually commit anything to the repository. Without
+# --place, it doesn't even create any files in the repository outside of
+# cdbuild/{raw,cooked}.
+
+unset CDPATH # avoid extraneous output
+
+mydir=`cd \`dirname $0\` && pwd` # Build/tools
+raw=$mydir/../cdbuild/raw
+test -d $raw || mkdir $raw
+cd $raw || exit 1
+
+if test "x$1" = x--place; then
+ place_chicken=
+ shift
+else
+ place_chicken=-n
+fi
+
+if test "x$1" = x--no-ctan; then
+ copy_from_ctan=false
+ shift
+else
+ copy_from_ctan=true
+fi
+
+pkg=$1
+if test -z "$pkg"; then
+ echo "$0: no TL package name specified." >&2
+ exit 1
+fi
+
+ctan_dir1=`tlpkginfo --ctan-dir $pkg`
+if test -z "$ctan_dir1"; then
+ echo "$0: can't find CTAN directory for $pkg." >&2
+ exit 1
+fi
+echo "$0: ctan dir for $pkg is $ctan_dir1"
+
+if $copy_from_ctan; then
+
+# remove whatever old stuff we might have.
+rm -rf $pkg
+
+# An important special case: the latex-tds project contains tds-ready
+# zip files for the base latex distribution and amslatex.
+# We want to use them.
+corelatex_tds_pkglist="babel|cyrillic|graphics|latex|psnfss|tools"
+amslatex_tds_pkglist="ams|amscls|amsltx2|amsmath|amsrefs" # dup in tlpkginfo
+latex_tds_pkglist="latex-tds|$amslatex_tds_pkglist|$corelatex_tds_pkglist"
+
+if echo "$pkg" | egrep "^($latex_tds_pkglist)\$" >/dev/null; then
+ mkdir $pkg
+ ctan_root=`tlpkginfo --ctan-root`
+ #
+ # complications: the latex-tds package, for our purposes, is the
+ # sources for the tools that do the process; that's in the zip file
+ # source.zip, in the latex-tds directory. Similarly, the zip file for
+ # latex itself is named "base.zip". Finally, amslatex.zip actually
+ # contains several packages (= directories) -- such as ams, amscls,
+ # etc. AMS sets it up that way.
+ #
+ if test $pkg = latex-tds; then
+ zipname=source.zip
+ elif test $pkg = latex; then
+ zipname=base.zip
+ elif echo "$pkg" | egrep "^($amslatex_tds_pkglist)\$" >/dev/null; then
+ zipname=amslatex.zip
+ else
+ zipname=$pkg.zip
+ fi
+ (cd $pkg && unzip -qq $ctan_root/macros/latex/contrib/latex-tds/$zipname)
+
+elif test "$pkg" = rsc; then
+ # single bst file.
+ mkdir -p $pkg
+ cp -p $ctan_dir1 $pkg
+
+elif test "$pkg" = genmisc; then
+ # do not copy subdirs, symlinks, or any files but .sty and .tex
+ # (that is, no patch.doc or pmat.zip).
+ mkdir -p $pkg
+ cp -p \
+ `find $ctan_dir1/* '(' -type d -o -type l ')' -prune -o \
+ '(' -name '*.sty' -o -name *.tex ')' -print` \
+ $pkg
+
+else
+ # normal case (/. to deref symlinks, e.g., arabtex)
+ cp -pr $ctan_dir1/. $pkg
+fi
+
+# Another special case: annoyingly, tugboat plain and tugboat latex are
+# stored in two different places on ctan. we'll assume we're invoked
+# with the latex dir, and now arrange to also copy in the plain stuff to
+# a `plain' subdirectory, which ctan2tds.pl has a further special case
+# to handle. Maybe we'll come across other cases like this, in which
+# case we can generalize this.
+#
+if test "$pkg" = tugboat; then
+ ctan_dir2=`echo $ctan_dir1 | sed s/latex/plain/`
+ destdir2=$pkg/plain
+ cp -r $ctan_dir2 $destdir2
+fi
+
+fi # end of copying from CTAN.
+
+
+#
+printf "\n ctan2tds\n"
+rm -rf ../cooked/$pkg
+test -d ../cooked || mkdir ../cooked
+../ctan2tds.pl $pkg || exit 1
+
+cd ../cooked || exit 1
+printf "\n\f cooked\n"
+find -depth -type d | xargs rmdir 2>/dev/null
+find $pkg \! -type d -printf "%TY%Tm%Td.%TH%TM %p\n" | sort -r +1
+
+# compare to tpm.
+Master=../../../Master
+tpmfile=`ls $Master/texmf*/tpm/$pkg.tpm 2>/dev/null`
+if test -z "$tpmfile"; then
+ echo "$0: no tpm file for $pkg in `cd $Master; pwd`." >&2
+else
+ printf "\nBEGIN COMPARE DATA"
+ printf "\n\f new vs. present $tpmfile\n"
+ rm -f /tmp/pkgfiles.*
+ # remove leading text in case of lines starting with texmf.
+ # Then assume all actual files do start with texmf.
+ sed -n -e '/TPM:.*Files/,$s,^texmf,./texmf,p' $tpmfile \
+ | grep -v '\.tpm$' \
+ | sort >/tmp/pkgfiles.tpm
+ #
+ # list of files in the new package we've just cooked.
+ (cd $pkg && find \! -type d -print) | grep -v '/cooked/' \
+ | sort >/tmp/pkgfiles.new
+ #
+ comm -3 /tmp/pkgfiles.new /tmp/pkgfiles.tpm
+ #
+ for common_file in `comm -12 /tmp/pkgfiles.new /tmp/pkgfiles.tpm`; do
+ diff --ignore-all-space -u0 $Master/$common_file $pkg/$common_file
+ done >/tmp/tldiff
+ diff_lines=`wc -l </tmp/tldiff`
+ diff_lines=`expr $diff_lines / 2`
+ printf "CMP: %d common files, ~%d lines different (/tmp/tldiff)\n" \
+ `comm -12 /tmp/pkgfiles.new /tmp/pkgfiles.tpm | wc -l` $diff_lines
+ printf "\nEND COMPARE DATA\n"
+fi
+
+printf "\n\f place $place_chicken\n"
+rm -rf $pkg.done
+../place $place_chicken $pkg
+status=$?
+
+rm -rf ../raw/$pkg
+exit $status